我们考虑一下这段代码:
如果我更改输入框内的文本,我知道我可以通过以下方式检索它:
> $(‘#my-input’).val()
> document.getElementById(‘my-input’).value
但如果我右键单击>检查我会看到类似的东西:
有没有办法在DOM中看到值foobar?如果没有,这个值存储在哪里?
这个问题与浏览器无关,导致这里的背景是IE 11.0.14中的一个奇怪的错误
最佳答案
Is there any way to see it inside the DOM?
当今浏览器中的大多数DOM检查员都没有(显然,你可以通过查看影子DOM在Chrome中看到显示其价值的内容,作为实现细节;请参阅Andrey’s answer).例如,它不对应任何属性,并且那些DOM检查器倾向于显示当前元素和属性,但不显示其他属性.他们当然可以,我从来没有见过那样做过.
If not,where is this value stored?
在元素的属性中.当然,元素是浏览器的DOM实现中的对象. HTMLInputElement有一个value
property,这是存储当前值的地方.没有为此定义HTML属性; value
attribute是输入的默认值,而不是其当前值. (它反映在defaultValue
property中.)因此,与id属性不同,它直接反映了id属性,值根本不是反射属性(因为它没有相应的属性可供反映).