正确的方法来替换E4X元素中的文本

时间:2010-11-25 21:19:12

标签: javascript e4x

我正在尝试从文本节点中删除双引号。以下代码有效:

var cars = <cars>
             <buick>
                <color>
                   "Blue"
                </color>
             </buick>
             <chevy>
                <color>
                   "Red"
                </color>
             </chevy>
           </cars>;

for each (elem in cars)
   for each (item in elem.*)
      elem[item.localName()] = item.text().toString().replace(/"/g,'');

但是,我对elem [item.localName()] =构造感到不舒服。实际上,我已经有了一个指向文本的项目,使用类似的东西会更合乎逻辑:

item = item.text().toString().replace(/"/g,'');

不幸的是,这段代码似乎没有做它应该做的事情。有什么想法吗?什么是正确的方法?

2 个答案:

答案 0 :(得分:1)

你在哪里运行这段代码?因为它在Firefox中工作正常。

这就是这样(尝试并让我知道它是否适合你):

for each (txt in cars..*.text()){
    txt.parent().setChildren( txt.toString().replace(/"/g,'') );
}

答案 1 :(得分:1)

请试试这个:

for each (var color in cars.*.*)
  color.* = color.toString().replace(/"/g,'');