jQuery:返回所有匹配的元素,而不仅仅是一个匹配的元素

发布于 2024-11-03 18:49:25 字数 244 浏览 0 评论 0原文

我有一个表,每个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

试试这个

var lossy = $("[title="+hicode+"][id="+hiwidth+"]").map(function() { return $(this).attr("lang"); });
alert(lossy);

我正在使用映射函数将数组或类似数组的对象中的所有项目转换为另一个项目数组。 (http://api.jquery.com/jQuery.map/)

try this

var lossy = $("[title="+hicode+"][id="+hiwidth+"]").map(function() { return $(this).attr("lang"); });
alert(lossy);

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/)

你是暖光i 2024-11-10 18:49:25

您可以使用 jQuery each() 函数循环遍历所有匹配的元素...

此代码定义一个数组,循环遍历所有匹配的元素并将 lang attr 添加到数组中。

var results=new Array();

$("[title="+hicode+"][id="+hiwidth+"]").each(function(index){
  results[index] = $(this).attr("lang");
});

alert(results);

另外,这里是一个循环 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.

var results=new Array();

$("[title="+hicode+"][id="+hiwidth+"]").each(function(index){
  results[index] = $(this).attr("lang");
});

alert(results);

Also, here is an example that loops through divs and collects the id attr: http://jsfiddle.net/tSmMj/

Hope that helps :)

草莓味的萝莉 2024-11-10 18:49:25

标准 jQuery 函数 $(selector) 确实返回所有匹配元素。您的问题就在这里:

[id="+hiwidth+"]

您似乎有多个具有相同 id 属性的元素,这是不允许的; id 属性在每个页面中应该是唯一的,否则您将得到未定义的行为。在您的情况下,浏览器仅返回具有您要查找的 id 的第一个元素。

因此,您需要修复 HTML,然后修复选择器以匹配更正后的 HTML。

The standard jQuery function, $(selector), does return all matching elements. Your problem is right here:

[id="+hiwidth+"]

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 the id you're looking for.

So you need to fix your HTML and then fix your selector to match your corrected HTML.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文