在HTML中没有值,但在JavaScript中有吗?

6 浏览
0 Comments

在HTML中没有值,但在JavaScript中有吗?

我在页面上找到了一个元素,$(\'thatElement\').val()$(\'thatElement\')[0].value返回了该元素的值,该值在渲染的输出中显示,但在元素本身上却没有value=\"...\"属性。\n为什么一个输入元素的HTML中没有value属性,但它仍然有值并显示其值?\n浏览器控制台:\n

> $('thatElement')[0].value
'页面显示在输入框内的文本'
> $('thatElement')[0].outerHTML
''

0
0 Comments

在HTML中,元素没有value属性的值,但在JavaScript中却有。这个问题出现的原因是因为HTML文档和它的DOM表示是有区别的。HTML文档是静态的,不会改变,而DOM可能会改变。在第一个示例中,虽然设置了元素的value属性的值为42,但是DOM并没有更新。而在第二个示例中,使用setAttribute()方法来更新元素的value属性值为'foobar',同时DOM也被更新了。

解决这个问题的方法是使用setAttribute()方法来设置元素的value属性的值,而不是直接修改value属性。这样可以确保DOM也会相应地更新。

0