我有一個表,其中每個td都有title,id和lang屬性。我想要所有匹配指定標題和ID的元素的所有lang。所以我試過了:jQuery:返回所有匹配的元素不僅一個匹配元素
var lossy = $("[title="+hicode+"][id="+hiwidth+"]").attr("lang");
alert(lossy);
但是這個返回只是第一個匹配的元素。
任何想法返回數組或甚至字符串中的所有匹配的元素仍然可以。謝謝。
我有一個表,其中每個td都有title,id和lang屬性。我想要所有匹配指定標題和ID的元素的所有lang。所以我試過了:jQuery:返回所有匹配的元素不僅一個匹配元素
var lossy = $("[title="+hicode+"][id="+hiwidth+"]").attr("lang");
alert(lossy);
但是這個返回只是第一個匹配的元素。
任何想法返回數組或甚至字符串中的所有匹配的元素仍然可以。謝謝。
您可以通過所有匹配的元素的使用jQuery的each()
功能循環......
此代碼定義了一個數組,通過所有的匹配元素的循環,並增加了郎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/
希望幫助:)
標準jQuery函數,$(selector)
,並返回所有匹配的元素。你的問題就在這裏:
[id="+hiwidth+"]
你似乎有相同的id
屬性的多個元素,並且是不允許的; id
屬性在每個頁面中應該是唯一的,否則您將會得到未定義的行爲。在你的情況下,瀏覽器只返回你正在尋找的第一個包含id
的元素。
因此,您需要修復您的HTML,然後修復您的選擇器以匹配您更正的HTML。
謝謝。我將避免使用具有相同id屬性的多個元素。 – Protocole 2011-04-28 06:56:00
試試這個
var lossy = $("[title="+hicode+"][id="+hiwidth+"]").map(function() { return $(this).attr("lang"); });
alert(lossy);
我使用的地圖功能轉換在陣列或陣列狀物體的所有項目,以項目的另一個數組。 (http://api.jquery.com/jQuery.map/)
謝謝。您的解決方案也適用於我。 – Protocole 2011-04-28 06:56:34