var name = document.querySelectorAll('.info input[type=text]');
var name1 = document.querySelectorAll('.info input[type=text]');
console.log(name);
console.log(name1);
<div class='info'>
<div>
<div><label id="dd">Name</label><input type='text'></div>
<div><label>Father Name</label><input type='text'></div>
</div>
</div>
javascript对于相同的代码产生不同的结果,只是变量名不同。 this is the output produced on my device
答案 0 :(得分:4)
要打印的name
对象上有一个名为window
的属性:
var name2 = document.querySelectorAll('.info input[type=text]');
var name1 = document.querySelectorAll('.info input[type=text]');
console.log(name === window.name);
console.log(name2);
console.log(name1);
<div class='info'>
<div>
<div><label id="dd">Name</label><input type='text'></div>
<div><label>Father Name</label><input type='text'></div>
</div>
</div>
答案 1 :(得分:2)
问题与window.name有关:https://developer.mozilla.org/en-US/docs/Web/API/Window/name
在顶部作用域中,您正在修改window.name而不是创建新的var。 window.name被转换为字符串,这就是为什么它记录了一些不同的原因。您需要将该代码包装在函数中或使用其他变量名称。
答案 2 :(得分:1)
let [ name1, name2 ] = document.querySelectorAll('.info input[type=text]');
<div class='info'>
<div>
<div><label id="dd">Name</label><input type='text'></div>
<div><label>Father Name</label><input type='text'></div>
/div>
</div>
请尝试使用变量而不是name
,因为这可能与window.name
发生冲突,只有在您的根范围内使用此变量时,这才会发生冲突。请改用模块化方法。为了避免此类错误。