2012-06-10 113 views
0

我有這樣的XML飼料,如下圖所示:如何選擇具有特定屬性的名稱元素,然後選擇它的次級屬性

<GSP VER="3.2"> 
    <TM>0</TM> 
    <Q>blue&blue</Q> 
    <PARAM name="output" value="xml_no_dtd" original_value="xml_no_dtd"/> 
    <PARAM name="q" value="blue&blue" original_value="blue%26blue"/> 
</GSP> 

然後我有以下jQuery來遍歷這個XML提要:

var queryresults = $(data).find("GSP").find("PARAM[q]"); 
var query = ""; 

$(queryresults).each(function() { 
    query = $(this).attr('original_value').text(); 
    alert(query); 
}); 

但我似乎沒有得到任何回報,你如何選擇具有特定屬性的特定元素,然後選擇次要屬性。例如

選擇"<PARAM>"具有屬性= "name"和檢索值= "original_value"

結果:

query=blue%26blue 
+0

'$( 'PARAM [NAME = 「Q」]');' – Ohgodwhy

+0

在你的問題'value'屬性*不等於'original_value'屬性;是故意的,還是我誤解了你的問題? –

+0

問題很混亂,因爲你選擇了一個不根據兩個不同屬性值選擇param的答案。你能否更新這個問題以更好地反映你所尋找的是什麼? – lucuma

回答

1

調整你的代碼看起來像這樣:

var queryresults = $(data).find("GSP").find("PARAM[name=q]"); 
var query = ""; 

$(queryresults).each(function() { 
    query = $(this).attr('value'); 
    alert(query); 
}); 

什麼你試圖用的.text()函數做的是沒有必要,因爲.attr()函數已經返回該屬性的值。

此外,爲了找到基於名字的元素,你可以使用以下命令:

$("PARAM[name=q]") 

這也將與其他屬性的工作。

有用的書:http://api.jquery.com/attribute-equals-selector/

1

我不知道在您的預期產出的query=部分從何而來,但除此之外,要從上面檢索blue%26blue字符串:

var originalValue = $('param[name="q"]').attr('original_value'); 

參考文獻:

1

要由多個屬性選擇:

$('param[name="whatever"][value="whatever2"]')

0

試試這個:

var queryresults = $("GSP").find("PARAM[name='q']"); // try it using "data" 
var query = ""; 
$(queryresults).each(function() { 
    query = $(this).attr('original_value'); 
    alert(query) 
}); 

http://jsfiddle.net/jHtg4/

相關問題