jQuery:返回所有匹配的元素,而不仅仅是一个匹配的元素
我有一个表,每个 td 都有 title、id 和 lang 属性。我想要与指定标题和 id 匹配的所有元素的所有 lang。所以我尝试了:
var lossy = $("[title="+hicode+"][id="+hiwidth+"]").attr("lang");
alert(lossy);
但这仅返回第一个匹配的元素。
任何返回数组甚至字符串中所有匹配元素的想法仍然可以。谢谢。
I have a table which each td has title, id, and lang attributes. I want all lang of all elements that matched specified title and id. So I tried:
var lossy = $("[title="+hicode+"][id="+hiwidth+"]").attr("lang");
alert(lossy);
But this return only first matched element.
Any idea to return all matched elements in array or even string is still OK. Thank you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
试试这个
我正在使用映射函数将数组或类似数组的对象中的所有项目转换为另一个项目数组。 (http://api.jquery.com/jQuery.map/)
try this
I'm using the map function that translate all items in an array or array-like object to another array of items. (http://api.jquery.com/jQuery.map/)
您可以使用 jQuery
each()
函数循环遍历所有匹配的元素...此代码定义一个数组,循环遍历所有匹配的元素并将 lang attr 添加到数组中。
另外,这里是一个循环 div 并收集 id attr 的示例: http://jsfiddle.net/tSmMj/
希望有帮助:)
You can use the jQuery
each()
function to loop through all of the matched elements...This code defines an array, loops through all of of the matched elements and adds the lang attr to the array.
Also, here is an example that loops through divs and collects the id attr: http://jsfiddle.net/tSmMj/
Hope that helps :)
标准 jQuery 函数
$(selector)
确实返回所有匹配元素。您的问题就在这里:您似乎有多个具有相同 id 属性的元素,这是不允许的;
id
属性在每个页面中应该是唯一的,否则您将得到未定义的行为。在您的情况下,浏览器仅返回具有您要查找的id
的第一个元素。因此,您需要修复 HTML,然后修复选择器以匹配更正后的 HTML。
The standard jQuery function,
$(selector)
, does return all matching elements. Your problem is right here:You seem to have multiple elements with the same
id
attribute and that is not allowed;id
attributes should be unique within each page or you will get undefined behavior. In your case, the browser is only returning the first element that has theid
you're looking for.So you need to fix your HTML and then fix your selector to match your corrected HTML.