Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么第一个代码有效而第二个代码无效';不行?_Javascript_Dom_Jsdom - Fatal编程技术网

Javascript 为什么第一个代码有效而第二个代码无效';不行?

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.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
 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'])