2

オブジェクトのuseevaluate()関数に問題がありXPathEvaluator()ます。私のコードは次のようになります:

var evaluator = new XPathEvaluator();
var result = evaluator.evaluate("//div[@id='header']/div[4]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
result.setAttribute("style", "background: red; outline: blue solid thick;");

evaluate()関数で使用できるオブジェクトを返さないでくださいsetAttribute()https://developer.mozilla.org/en-US/docs/Using_XPathを読みました。使用できる正しいオブジェクトを取得するにはどうすればよいsetAttribute()ですか?

4

1 に答える 1

2

setAttribute要素ノードで使用できます。このevaluateメソッドは要素ノードまたはノード リストを返さず、代わりにXPathResultオブジェクトを返します。あなたが望んでいるのは

var div = document.evaluate("//div[@id='header']/div[4]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
if (div !== null) {
  div.setAttribute("attribute-name", "attribute-value");
}
于 2012-08-07T11:29:17.017 に答える