152

我正在尝试查找元素 ID 包含特定文本的页面上的所有元素。然后,我需要根据它们是否隐藏来过滤找到的元素。任何帮助是极大的赞赏。

4

4 回答 4

231
$('*[id*=mytext]:visible').each(function() {
    $(this).doStuff();
});

请注意,选择器开头的星号“*”匹配所有元素

请参阅Attribute Contains Selectors以及:visible:hidden选择器。

于 2009-07-30T13:51:41.400 回答
162

如果你是通过Contains找到的,那么它会是这样的

    $("input[id*='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

如果你是通过Starts With找到的,那么它会是这样的

    $("input[id^='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

如果你是通过Ends With找到的,那么它会是这样的

     $("input[id$='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

如果要选择id 不是给定字符串的元素

    $("input[id!='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

如果要选择名称包含给定单词的元素,以空格分隔

     $("input[name~='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

如果要选择id 等于给定字符串或以该字符串开头后跟连字符的元素

     $("input[id|='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });
于 2014-02-28T06:03:14.387 回答
22

这将选择 ID 包含 'foo' 且可见的所有 DIV

$("div:visible[id*='foo']");
于 2009-07-30T13:57:24.327 回答
7

感谢你们俩。这对我来说非常有效。

$("input[type='text'][id*=" + strID + "]:visible").each(function() {
    this.value=strVal;
});
于 2009-07-30T15:16:34.707 回答