JQuery中的Val和Text有什么区别?

3

我曾经认为应该使用"val()"来处理输入元素,而" text() "则用于其他所有元素。

然而,当我尝试以下操作时:

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

I get

[<input>​]

当我执行以下操作时:

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

我理解

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

后者是我要找的。

使用jQuery创建元素时,是否有什么不同之处?我的实际情况比这个复杂得多,但为了这个问题的目的,我对其进行了简化。


好的,在进一步研究后,似乎“test”这个值实际上被设置了,例如当我将该项追加到屏幕时可以看到它。“$('body').append($("<input/>").val("test"))”。我只是认为它不起作用,是因为输入元素的值在Chrome的控制台窗口中不显示...... 我想它应该会显示成<input value="test"/> - kralco626
3个回答

4

.val()是用于HTML属性"value"的。

.text()是用于innerHTML的(类似于.html())。


жҲ‘жғіжҲ‘зҡ„и§ӮзӮ№жҳҜпјҢжҲ‘д»Ҙдёәval()жҳҜз”ЁдәҺinputзҡ„жӯЈзЎ®ж–№жі•гҖӮ - kralco626
@kralco626,它是用于<input>元素的正确选项。<input>test</input>是无效的HTML。 - zzzzBov
啊,是的,请看我的评论。似乎Chrome在将值打印到控制台时并没有将其作为属性附加。所以它确实存在,只是隐藏了。 - kralco626

0

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

官方文档指出,不应将 .text()input 元素 配合使用。

这里有一个 参考链接

更新:尝试通过纯 JavaScript 实现该功能,代码如下:

HTML:

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

Javascript:

为输入元素赋值

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

并且通过这种方式获取值

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

0

如果您将值传递给.text().val(),它会将该数据发送到匹配的元素。如果您正在尝试目标这个:

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

尝试在jQuery中使用这个:

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接