Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.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 JS和queryselectoral_Javascript - Fatal编程技术网

Javascript JS和queryselectoral

Javascript JS和queryselectoral,javascript,Javascript,一个质询的选择所有的问题,很可能是一个愚蠢的问题,但我看不出答案 我有如下的东西 <div id="main_0"> ... </div> <div id="main_1"> ... </div> <div id="main_1_minor"> ... </div> <div id="main_2"> ... </div> <div id="main_2_minor"> ... </

一个质询的选择所有的问题,很可能是一个愚蠢的问题,但我看不出答案

我有如下的东西

<div id="main_0"> ... </div>
<div id="main_1"> ... </div>
<div id="main_1_minor"> ... </div>
<div id="main_2"> ... </div>
<div id="main_2_minor"> ... </div>
              .
              .
但显然这还不够。我不知道如何用正则表达式表示id值必须以数字结尾。我尝试了类似RegExp“^main\\ud$”的东西;但是我没有弄对。

您可以将:not选择器与属性ends with selector一起使用

"div:not([id$=minor])"
如果它还应该验证id以main开头,那么您也可以在问题中添加它

"div[id^=main_]:not([id$=minor])"
这表示选择所有div元素,其中id以main_uu开头,而不是以minor结尾

如果minor不一定在末尾,那么可以将id*=minor用于contains

document.querySelectorAlldiv[id^=main]:非[id$=minor] .forEachel=>el.style.color=红色; 主要的 主要的 主端与副端 主要的 主端点与次端点可以将:not选择器与属性ends with selector一起使用

"div:not([id$=minor])"
如果它还应该验证id以main开头,那么您也可以在问题中添加它

"div[id^=main_]:not([id$=minor])"
这表示选择所有div元素,其中id以main_uu开头,而不是以minor结尾

如果minor不一定在末尾,那么可以将id*=minor用于contains

document.querySelectorAlldiv[id^=main]:非[id$=minor] .forEachel=>el.style.color=红色; 主要的 主要的 主端与副端 主要的
主端带有次端过滤器对节点列表不起作用,先强制转换到数组。另外,如果您已经选择了所有主div,那么最简单的正则表达式就足够了

var pattern=new RegExp/\d+$/; var-elSelected=Array.prototype.slice.calldocument.querySelectorAll'div[id^=main!]; elSelected.filterlt=>pattern.testelt.id.forEachfunctionelt{ elt.style.backgroundColor=黄色; }; 主要的 主楼1 大调1小调 主要功能2
main_0_minor过滤器对节点列表不起作用,首先强制转换到数组。另外,如果您已经选择了所有主div,那么最简单的正则表达式就足够了

var pattern=new RegExp/\d+$/; var-elSelected=Array.prototype.slice.calldocument.querySelectorAll'div[id^=main!]; elSelected.filterlt=>pattern.testelt.id.forEachfunctionelt{ elt.style.backgroundColor=黄色; }; 主要的 主楼1 大调1小调 主要功能2
梅因·米诺请注意我的话不会以任何东西结尾else@mario:那就等于说以……结尾。。。。换句话说,除了foo之外,不以其他任何东西结尾,意味着它必须以foo结尾,因此[id$=foo]@mario,如果您设计html,您可以为div添加特定类,然后只需查询selectorall'.specific class name',这将使您的生活更轻松。@Sphinx,实际上,我没有。提醒自己我怎么说,不会以任何事情结束else@mario:那就等于说以……结尾。。。。换句话说,除了foo之外,不以其他任何东西结尾,意味着它必须以foo结尾,所以[id$=foo]@mario,如果你设计html,你可以为div添加特定的类,然后只需查询selectorall'.specific class name',这将使你的生活更轻松。@Sphinx,事实上,我没有。我只添加了forEach来为代码的输出着色。但它在代码段中有效。如果该部分低于div,则似乎有效。是吗?是的,推荐的方法是在页面底部的。如果操作DOM元素,则需要执行此操作或等待页面加载。@scroder4是的,当然,JQuery使用太多了。很抱歉,我只添加了forEach来为代码的输出着色。但它在代码段中有效。如果该部分低于div,则似乎有效。是吗?是的,推荐的方法是在页面底部的。如果操作DOM元素,则需要执行此操作或等待页面加载。@scroder4是的,当然,JQuery使用太多了。很抱歉