在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”]”)
。。。