如何选择具有特定属性名称的元素,然后选择其辅助属性

时间:2012-06-10 00:48:35

标签: jquery xml

我有这个xml feed,如下所示:

<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 feed:

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

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

但我似乎没有得到回报,你如何选择具有特定属性的特定元素,然后选择辅助属性。例如

选择"<PARAM>" WITH attribute = "name"并检索值= "original_value"

结果:

query=blue%26blue

4 个答案:

答案 0 :(得分:1)

我不确定预期输出的query=部分应该来自哪里,但除此之外,要从上面检索blue%26blue字符串:

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

参考文献:

答案 1 :(得分:1)

按多个属性选择:

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

答案 2 :(得分:1)

将代码调整为如下所示:

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

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

由于.attr()函数已经返回该属性的值,因此无需使用.text()函数。

此外,为了根据名称查找元素,您可以使用以下内容:

$("PARAM[name=q]")

这也适用于其他属性。

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

答案 3 :(得分: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/