【问题标题】:jquery and input textjquery和输入文本
【发布时间】:2011-01-06 14:33:58
【问题描述】:

我会知道这是否是一个错误...当我从#test 提醒 html 内容时,我得到:

<input name="sum" value="" type="text">

而在警报之前它被设置为 55,我可以在浏览器上查看它。

你能告诉我为什么吗? :-)

    <div id="test">
    <input type="text" name="sum" value="">
</div>

<script language="javascript">
 $(document).ready(function() {
    $("#test").find("input[name='sum']").val(55);
    alert($("#test").html());
 });
 </script>

【问题讨论】:

  • 欢迎来到 StackOverflow,汤姆!

标签: javascript jquery


【解决方案1】:

Javascript 不会更改页面上的物理标记。它改变了 DOM。 DOM 是根据标记构建的,但之后标记就不再重要了。

你不想提醒HTML,你想提醒输入的值:

alert($("#test :input[name='sum']").val());

【讨论】:

    【解决方案2】:

    这不是错误。 #test 的值不是输入的 HTML 内容的一部分——它是在元素插入 DOM 之后设置的——因此 html() 函数不会返回它。

    【讨论】:

    • 好的,谢谢,我认为 html() 函数会根据孩子的更新而改变...
    • 如果您在 div 中添加了更多元素(例如),html() 将返回它们,但不会反映更改属性值。我想。
    • 有没有办法查看源代码的真实情况?谢谢!
    • 这是一个棘手的问题。可以说,页面的来源不包括您稍后设置的值。但是为了更有帮助地回答你的问题,stackoverflow.com/questions/1388893/… 是另一个关于这个问题的讨论,它提供了一个你可以使用的 jQuery 插件。
    • 非常感谢您的帮助,以利亚!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    • 2012-05-13
    • 1970-01-01
    • 2016-11-17
    • 1970-01-01
    • 2013-05-17
    相关资源
    最近更新 更多