Javascript 为什么第一个代码有效而第二个代码无效';不行?
当我把div.main作为一个单独的条件时,代码不起作用Javascript 为什么第一个代码有效而第二个代码无效';不行?,javascript,dom,jsdom,Javascript,Dom,Jsdom,当我把div.main作为一个单独的条件时,代码不起作用 <div class="user-panel main"> <input type="text" name="login"> </div> document.querySelector("div.user-panel.main input[name='login']").style.backgroundColor = "red"; // this code works docum
<div class="user-panel main">
<input type="text" name="login">
</div>
document.querySelector("div.user-panel.main input[name='login']").style.backgroundColor = "red"; // this code works
document.querySelector("div.user-panel div.main input[name='login']").style.backgroundColor = "red"; // this code doesn't work
document.querySelector(“div.user-panel.main input[name='login']”)。style.backgroundColor=“red”//此代码有效
document.querySelector(“div.user-panel div.main input[name='login']”)。style.backgroundColor=“red”//这个代码不起作用
当选择器与空格-a组合时,称为后代选择器。所以
document.querySelector("div.user-panel div.main input[name='login']")
正在查找div.main中的input[name='login']
,div.user-panel中的
因为在html中它只是一个包含2个类的div,所以这个选择器找不到任何东西
但是,如果您的html如下所示,则它将起作用:
<div class="user-panel">
<div class="main">
<input type="text" name="login">
</div>
</div>
查询选择器中的空格表示一个元素位于另一个元素内部。第二行是查找div.main
中包含的输入[name='login']
,它包含在另一个div(div.user-panel
)中。删除div.main
。因此,将第二个选择器更改为document.querySelector(“div.user-panel.main input[name='login'])