我有一个表,每个td都有title,id和lang属性。我想要所有符合指定标题和id的元素。所以我试过了:
var lossy = $("[title="+hicode+"][id="+hiwidth+"]").attr("lang");
alert(lossy);
但这只返回第一个匹配的元素。
任何想法返回数组中的所有匹配元素甚至字符串仍然可以。谢谢。
答案 0 :(得分:7)
试试这个
var lossy = $("[title="+hicode+"][id="+hiwidth+"]").map(function() { return $(this).attr("lang"); });
alert(lossy);
我正在使用map函数将数组或类数组对象中的所有项目转换为另一个项目数组。 (http://api.jquery.com/jQuery.map/)
答案 1 :(得分:3)
您可以使用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/
希望有所帮助:)
答案 2 :(得分:3)
标准jQuery函数$(selector)
确实返回所有匹配元素。你的问题就在这里:
[id="+hiwidth+"]
您似乎拥有多个具有相同id
属性且不允许的元素; id
属性在每个页面中应该是唯一的,否则您将获得未定义的行为。在您的情况下,浏览器只返回您正在寻找id
的第一个元素。
因此,您需要修复HTML,然后修复选择器以匹配更正后的HTML。