在JQuery尝试访问元素时,我看到如果我有一个表单(比如说textarea
),我想在其中获取text
,我必须使用{{ 1}}
相反,如果我有一个$("textarea").val();
元素,我必须使用h1
为什么会这样? $("h")[0].innerHTML;
答案 0 :(得分:13)
.val()
用于获取/替换jQuery中的输入元素值,JS中的替代值为.value
。
innerHTML
或jQuery' s .html()
用于获取/替换元素内的整个标记,而不是输入元素。
text()
与JS innertHTML
的使用方式几乎相同,只是它获取/替换元素内的文本,而不是所有的标签等。它的贝司等价于JS {{ 1}}
答案 1 :(得分:0)
您可以使用分别映射到h1.text()
和h1.html()
的{{1}}或innerText
。
映射到innerHTML
的{{1}}。
使用jquery等价物为您提供跨浏览器兼容性,尽管这可能更像是一个历史遗迹。新浏览器可能以相同的方式实现这些功能。
作为一般规则:val()
用于输入元素,input.value
用于非输入字段。
答案 2 :(得分:0)
因为Html中的所有输入都有val(),并且它们可以发送它们的值以由表单处理,例如textarea,text,submit,......
但像h1,span,...这样的标签不参与表格而且不会被处理,而且他们也可能有内部标签和html。
答案 3 :(得分:0)
textarea.innerHTML
实际上将用于获取textarea的html内容,因为它最初呈现,而val()
将根据用户输入获取当前值。 val()
正如其他人所说,只适用于表单元素,因此对<h1>
没有任何结果。
$('textarea').on('input', function() {
$('#innerhtml').text(this.innerHTML);
$('#val').text($(this).val());
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
Type in the textarea below to see results:
<br>
<textarea>test123</textarea>
<div>textarea innerHTML:</div>
<div id="innerhtml"></div>
<div>textarea val:</div>
<div id="val"></div>
&#13;
答案 4 :(得分:-1)
.val()用于从jQuery中的输入元素获取值。 JavaScript中的替代品是.value。
.innerHTML用于在某些标记之间放置一些值。 因此innerHTML是一个DOM属性,用于将内容插入到元素的指定id中,而使用.val(),您只需从某些输入标记中获取值。