使用jQuery查找页面上元素ID包含特定文本的所有元素
Posted
技术标签:
【中文标题】使用jQuery查找页面上元素ID包含特定文本的所有元素【英文标题】:Find all elements on a page whose element ID contains a certain text using jQuery 【发布时间】:2010-11-15 10:59:37 【问题描述】:我正在尝试查找页面上元素 ID 包含特定文本的所有元素。然后,我需要根据它们是否隐藏来过滤找到的元素。非常感谢任何帮助。
【问题讨论】:
JQuery selector regular expressions 的可能重复项 【参考方案1】:$('*[id*=mytext]:visible').each(function()
$(this).doStuff();
);
注意选择器 matches all elements 开头的星号“*”。
查看Attribute Contains Selectors,以及:visible 和:hidden 选择器。
【讨论】:
也许值得一提的是,当匹配元素的id
时,您不使用引号,而匹配 name
时则使用引号。 $('*[name*="myname"]:visible')
不是最直观的,我之前也遇到过。
我替换了 $(this).doStuff();用 this.doStuff();并且工作【参考方案2】:
这会选择 ID 包含 'foo' 且可见的所有 DIV
$("div:visible[id*='foo']");
【讨论】:
如果我在搜索文本框元素而不是 div,是否只是 $("input:visible[id*='foo']"); ? 应该是 $("input[type='textbox'][id*='foo']:visible") @port-zero - 'foo' 周围的单引号不是必需的 如果你想获取元素的值(在我的例子中是 spans)你必须得到$(this)[0].innerText
【参考方案3】:
感谢你们俩。这对我来说非常有效。
$("input[type='text'][id*=" + strID + "]:visible").each(function()
this.value=strVal;
);
【讨论】:
【参考方案4】:如果您通过包含查找,那么它会是这样的
$("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
);
【讨论】:
你好,如何使用选择器来选择那些id属于数组的元素。以上是关于使用jQuery查找页面上元素ID包含特定文本的所有元素的主要内容,如果未能解决你的问题,请参考以下文章
JQuery 在嵌套元素上查找没有选择器的文本节点仅适用于 .contents() 和 filter()