【问题标题】:Val vs Text in JQuery [duplicate]JQuery中的Val与文本[重复]
【发布时间】:2014-02-12 12:59:08
【问题描述】:

我的印象是“val()”应该用于输入元素,“text()”应该用于所有其他元素。

但是,当我执行以下操作时:

$("<input/>").val("test")

我明白了

[<input>​]

当我执行以下操作时:

$("<input/>").text("test")

我明白了

[<input>​test​</input>​]

后者是我要找的。​​p>

使用 jquery 创建我缺少的元素时有什么不同吗?我的实际情况比这复杂得多,但出于这个问题的目的,我对其进行了简化。

【问题讨论】:

  • 好的,经过进一步研究,似乎实际上设置了值“test”,例如当我将项目附加到屏幕时可以看到它。 $('body').append($("&lt;input/&gt;").val("test")) 我只是认为它不起作用,因为输入元素的值没有显示在 chrome 的控制台窗口中......我猜我会认为它会显示为 &lt;input value="test"/&gt;

标签: javascript jquery html


【解决方案1】:

.val() 用于 HTML 属性“值”

.text() 用于innerHTML(类似于 .html() )

【讨论】:

  • 我想我的意思是,我认为val() 对我们来说是正确的input
  • @kralco626,它用于&lt;input&gt; 元素的正确方法。 &lt;input&gt;test&lt;/input&gt; 是无效的 HTML。
  • 啊,是的,看我的评论。当您将其打印到控制台时,Chrome 似乎并没有真正将其附加为属性。所以它就在那里,它只是隐藏起来。
【解决方案2】:

如果您将值传递给.text().val(),它将将该数据发送到匹配的元素。如果你想以此为目标:

<input type="text" val="the value" />

尝试在 jQuery 中使用它:

var $testRes = $('input').attr('val');

console.log($testRes); // the value

【讨论】:

    【解决方案3】:

    .text()返回所有匹配元素(如p、div等)的组合文本内容.val()用于获取输入元素(如input、select等)的值

    根据官方文档,.text() 不应与input elements 一起使用。

    这是reference

    更新:尝试通过纯javascript实现,这样:

    HTML:

    <input type='text' id='myinput' />
    

    Javascript:

    赋予输入元素价值

    document.getElementById("myinput").value = 'Your value here'
    

    以这种方式获得价值

    var myinputval = document.getElementById("myinput").value
    

    【讨论】:

      猜你喜欢
      • 2011-01-24
      • 2012-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      相关资源
      最近更新 更多