使用jQuery查找页面上所有元素ID包含特定文本的元素


Answers:


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

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

请参阅属性包含选择器,以及:visible:hidden选择器。


17
也许值得一提的是,当与元素匹配时,id您不使用引号,而与元素匹配时,则使用引号name$('*[name*="myname"]:visible') 不是最直觉的,之前已经吸引了我。
ficuscr

我替换了$(this).doStuff(); 与this.doStuff(); 并且工作了
卡洛斯·洛佩斯·玛丽

133

如果您通过Contains查找,它将像这样

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

如果您是通过“ 开始于”找到的,则将是这样

    $("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
     });

您好,如何使用选择器选择ID属于数组的那些元素。
bpa.mdl

20

这将选择ID包含“ foo”且可见的所有DIV。

$("div:visible[id*='foo']");

如果我在搜索文本框元素而不是div,是否只是$(“ input:visible [id * ='foo']”); ?
user48408

这将是$(“ input [type ='textbox'] [id * ='foo']:visible”)
karim79

1
@ port-
zero-

如果您想获取元素的值(在我的情况下为跨度),则必须获取$(this)[0].innerText
Niklas

6

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

$("input[type='text'][id*=" + strID + "]:visible").each(function() {
    this.value=strVal;
});
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.