Jquery在xml元素中更改“value”属性的值

时间:2016-11-16 12:35:37

标签: javascript jquery xml

示例(摘录):

 <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值

还在$ listItem上尝试了.prop(“value”)和.attr(“value”)。

非常感谢使用上述xml示例的jsfiddle,它编辑了LISTITEM的value属性

1 个答案:

答案 0 :(得分:0)

每次调用$(xml)时,您都会根据原始字符串创建新的DOM对象。试试这个:

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

现在只解析一次XML字符串并更新生成的节点。