这个问题是关于Sergey Ilinsky的jQuery XPath插件。我有一个xml文件,我通过这个插件导航它。文件本身并不重要。问题与插件的功能更相关。
var elemList = $(xmlDoc).xpath("call-script/option" + xpathExtension);
for (var i = 0; i < elemList.length; i++) {
if (elemList[i].getAttribute('text') != null) {
alert(elemList[i].getAttribute('text'));
//elemList[i].getAttribute('text') = 'example';
}
}
我想设置所选节点的 text 属性,如注释掉的行所示。 getAttribute
当我仅将其用于阅读目的时,就像一个魅力。我想为它分配某种setAttribute
函数,该函数不可用。非常感谢您的任何帮助。
插件的链接:http://plugins.jquery.com/xpath/
插件版本:0.2.4
编辑:我想我应该分享一部分xml,以便更好地理解。
<?xml version="1.0"?>
<call-script say="Good morning">
<option text="caller asks for blah">
...
...
...
</option>
<option text="caller requests blah">
...
...
...
<option text="caller would like to blah">
...
...
...
</option>
</call-script>
答案 0 :(得分:0)
你已经拥有了jQuery,所以如果你使用jQuery的.attr()
函数可以提高效率,它可以作为getter和setter的双重任务,具体取决于参数。此处也可以使用$.each()
函数。
重写样本:
$.each(elemList, function(key, element) { // iterate over each thing in elemList
if (element.attr('text') !== null) { // without 2nd argument, just returns the value
alert(element.attr('text')); // same
element.attr('text', 'example'); // with 2nd argument, sets the value
}
});
答案 1 :(得分:0)
看起来还有setAttribute
功能。
elemList[i].setAttribute('text','example');
这解决了我的问题。抱歉打扰你。
教程链接:http://www.w3schools.com/xml/met_element_setattribute.asp