JQuery选择器ID以某个字符开头但不以某个字符结尾

3
你知道如何选择ID不包含给定字符串的元素吗?或者选择ID不包含给定单词的元素?
示例:
<div id="my_div">
    <div id="tab_abcd">...</div>
    <div id="tab_efgh">...</div>
    <div id="tab_jklm">...</div>
    <div id="tab_nopq">...</div>
    <div id="tab_rstu">...</div>
    <div id="tab_vwxy">...</div>
</div>

我想选择以“tab_”开头但不以“nopq”结尾的div。不能使用nt-child,因为这些div是动态生成的,所以我不知道顺序。

以下的答案非常好。但是如果您可以控制生成的HTML,您可能会考虑使用“class”对div进行标记,然后以这种方式选择它。 - rkw
4个回答

11

我们可以根据需要添加许多“不是”的条件,例如:$('[id^="tab"]:not([id$="nopq"]):not([id$="rstu"])')。 - Yoong Kim
@Yoong Kim:没错,[...]:not() 选择器和 .classname#id 是一样的,所以你可以随意链式调用它们。 - zerkms

3

也许这个代码可以工作,但在我的情况下,我有其他的选择器,我的最终代码是:$('[id^="details_product_"]:not([id$="functiontestreports"]) a[name^="togglePhoto_"]').trigger('click'); - Yoong Kim

2
您可以尝试这个方法:
$('div:not([id*="given word"])')

不以“nopq”结尾 - *= 会导致误报 - zerkms

1
$('div[id^="tab_"]:not(div[id$="nopq"])');

请查看JQAPI文档,了解更多关于选择器和示例的信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接