我对这个概念很陌生,并努力达到以下要求。
我在我的javascript变量中有以下xml对象名为" detailJSTotal"。
<response>
<div>
<p>
<label>
ID:
</label>
812161
</p>
<p>
<label>
Name:
</label>
252
</p>
<a href="javascript:void(0)" onclick="text4.xml">
more...
</a>
</div>
<div>
<p>
<label>
ID:
</label>
812162
</p>
<p>
<label>
Name:
</label>
252
</p>
<a href="javascript:void(0)" onclick="test2.xml">
more...
</a>
</div>
<div>
<p>
<label>
ID:
</label>
812163
</p>
<p>
<label>
Name:
</label>
252
</p>
<a href="javascript:void(0)" onclick="text.xml">
more...
</a>
</div>
<div>
<p>
<label>
ID:
</label>
812164
</p>
<p>
<label>
Name:
</label>
252
</p>
<a href="javascript:void(0)" onclick="test1.xml">
more...
</a>
</div>
这里根元素(响应)包含多个&lt; div>元素。每个&lt; div> element包含&lt;标签&gt;元素及其价值和&lt; a&gt;元件。
我的要求是获得&lt;的值。 a&gt;元素&#34; onclick&#34;给定&lt;的属性标签&gt; &#39; ID&#39; a的值&lt; div>元件。
示例:
我可能希望得到&#34; onclick&#34;属性&lt; a&gt;通过提供ID&lt;标签&gt;值为&#39; 812161&#39;。返回值应为&#34; text4.xml&#34;在上面的例子中。
答案 0 :(得分:1)
只需通过jQuery加载你的xml:
var $xml = $(detailJSTotal);
您现在可以使用jQuery所有jQuery函数并选择所需的所有信息。
例如,使用find()
:
var $label = $xml.find('label:contains("test")');
return $label.next('a').attr('onclick');
注意:未经测试,只是写出来的。
答案 1 :(得分:0)
尝试Jquery&#39; xmlParser
;像这样
var detailJSTotal= `<response>
<div>
<p>
<label>
ID:
</label>
812161
</p>
<p>
<label>
Name:
</label>
252
</p>
<a href="javascript:void(0)" onclick="text4.xml">
more...
</a>
</div>
<div>
<p>
<label>
ID:
</label>
812162
</p>
<p>
<label>
Name:
</label>
252
</p>
<a href="javascript:void(0)" onclick="test2.xml">
more...
</a>
</div>
<div>
<p>
<label>
ID:
</label>
812163
</p>
<p>
<label>
Name:
</label>
252
</p>
<a href="javascript:void(0)" onclick="text.xml">
more...
</a>
</div>
<div>
<p>
<label>
ID:
</label>
812164
</p>
<p>
<label>
Name:
</label>
252
</p>
<a href="javascript:void(0)" onclick="test1.xml">
more...
</a>
</div></response>`;
xmlDOM = $( $.parseXML( detailJSTotal) );
function getAttrForID(id){
console.log($($(xmlDOM).find("p:contains(" + id + ")").siblings("a")[0]).attr("onclick"));
return $($(xmlDOM).find("p:contains(" + id + ")").siblings("a")[0]).attr("onclick");
}
console.log(getAttrForID("812161"));
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;