2016-11-16 31 views
0

实施例(片断):jQuery来在xml元素改变的 “value” 属性值

<FIELD name="xxxxxxxx" refname="xxxx" type="String" reportable="dimension"> 
    <WHEN field="xxxxxxxx" value="xxxxxxxxxxxxxxxxx"> 
    <ALLOWEXISTINGVALUE /> 
    <ALLOWEDVALUES expanditems="true"> 
     <LISTITEM value="n.a." /> 
     <LISTITEM value="Test" /> 
    </ALLOWEDVALUES> 
    </WHEN> 
    <WHEN field="yyyyyyyyyyyyy" value="yyyyyyy"> 
    <ALLOWEXISTINGVALUE /> 
    <ALLOWEDVALUES expanditems="true"> 
     <LISTITEM value="n.a." /> 
    </ALLOWEDVALUES> 
    </WHEN> 
</FIELD> 

当我做:

var $listItem = $(xmlDoc).find("FIELD[name='" + dependentFieldType + "'] > WHEN[value='" + productName + "'] ALLOWEDVALUES > LISTITEM[value='" + listItem + "']"); 
$listItem.val(newListItemValue); 

它不更新列表项值

另外在$ listItem上试过.prop(“value”)和.attr(“value”)。

将是与上面的XML样本工作的jsfiddle,其编辑的列表项

+0

在内存中更改XML文档的值似乎没有多大意义。你究竟想达到什么目的? –

+0

我正在尝试更改xml中的LISTITEM元素的“值”属性值 –

+0

嗯,是的,但是为什么?更改值后,您如何处理XML? –

回答

0

每次调用$(xml)正在创建基于原始字符串的新DOM对象时的价值属性非常感谢。试试这个:

j = $(xml); 
j.find('attr').attr('foo', 'bar'); 
console.log(j.html()); 

现在只解析XML字符串一次并更新结果节点。