Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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中使用querySelector时,有没有办法跳过HTML中的特定CSS选择器?_Javascript_Jquery_Html_Css_Angularjs - Fatal编程技术网

在JavaScript中使用querySelector时,有没有办法跳过HTML中的特定CSS选择器?

在JavaScript中使用querySelector时,有没有办法跳过HTML中的特定CSS选择器?,javascript,jquery,html,css,angularjs,Javascript,Jquery,Html,Css,Angularjs,我需要跳过这个querySelector('input'),因为在某些情况下,输入将排在第二位而不是第一位。有没有一种方法可以将HTML中的元素标记为“跳过这个”?您可以自由地利用CSS语法的全部功能。在您的示例中,如果您只想获取第一个父元素的输入,则按如下方式查询: querySelector('input:first child') 或者,如果您想精确地使用第n个子项选择器,或者更好地使用第n个类型的选择器: querySelector('输入:第n个类型(1)') 但最好的解决方案是用类或

我需要跳过这个
querySelector('input')
,因为在某些情况下,输入将排在第二位而不是第一位。有没有一种方法可以将HTML中的元素标记为“跳过这个”?

您可以自由地利用CSS语法的全部功能。在您的示例中,如果您只想获取第一个父元素的输入,则按如下方式查询:

querySelector('input:first child')

或者,如果您想精确地使用第n个子项选择器,或者更好地使用第n个类型的选择器:

querySelector('输入:第n个类型(1)')

但最好的解决方案是用类或id标记您的输入,然后使用它:

querySelector('.myInput')

当然,您可以将其与否定选择器结合使用:


querySelector('.myInput:not(':n个子(2)')
querySelector
返回与方法中提供的选择器匹配的第一个元素。为什么不呢?这就是它应该做的

A.E.下面返回它可以在文档上自上而下找到的第一个输入标记

document.querySelector("input");
它将始终返回它能找到的第一个输入标记。有两个选项可以“跳过”节点。您可以编写一个函数来递归地检查输入是否应该被跳过(有点多余和难看),也可以简单地对选择器进行更具体的操作

无论哪种方式,你都需要给你想要跳过某种可识别特征的输入元素。可以是
名称
属性或
数据集
属性或
id
——任何可以通过编程检查的内容

//功能示例
函数ignoreskippetable(){
设ele,eles=Array.from(document.querySelectorAll(“input”);
ele.some(elem=>!elem.matches('.skippable')?ele=elem:false);
返回ele;
}
log(ignoreSkippable());
// 
//特定选择器示例
让ele=document.querySelector(“输入:not(.skippable)”;
console.log(ele);//

是,使用
:not([选择器])
排除您需要的任何元素。您可以使用
$(“输入:not(.skip this)
$(“输入”)。not(.skip this)
但是,如果您提供一些html或者可以详细说明如何识别要跳过的输入,这会更容易。通常输入都有名称,至少建议这样做,因此您可以更容易地将name属性作为目标,而不是
document.querySelector('input[name=“theInputName”]”)
。。。