【问题标题】:Store xpathResult.snapshotItem in a local variable?将 xpathResult.snapshotItem 存储在局部变量中?
【发布时间】:2012-07-24 16:22:45
【问题描述】:

我正在尝试为 xml 创建一个跨浏览器界面,特别是使用 XPath 表达式来选择节点。

IE 很简单:

this.documentElement.selectNodes(xPathStr);

返回一个提供类似数组访问的对象(results[i]results(i))。

但是,Firefox/chrome 并不那么容易。

this.xpathEvaluator.evaluate(xPathStr, this.documentElement, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);

返回一个 XPathResult,可以使用results.snapshotItem(i) 进行迭代或访问几乎像数组一样的数组。

我试过了

var items = results.snapshotItem;

但是当我尝试使用它时出现错误(“对 WrappedNative 原型对象的非法操作”)。

关于如何将其缓存为类似数组的变量的任何想法,还是我坚持手动创建数组然后返回它?

【问题讨论】:

    标签: javascript xpath


    【解决方案1】:

    我相信您需要将结果切换到节点:

        var item = nodes.snapshotItem[i];
    

    我正在做一个类似的项目(有不同的问题),但这对我有用。不过,我猜你可以这样做:

        var items = nodes.snapshotItem;
    

    之后调用 items[i]。不过我还没有测试过。

    【讨论】:

    • 欢迎来到本站!最好知道您正在证明一个有用的答案,但感谢您的参与
    猜你喜欢
    • 2013-04-26
    • 2016-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    相关资源
    最近更新 更多