繁体   English   中英

使用replace之后,appendChild()将不起作用

[英]appendChild() won't work after using replace

我正在为Firefox扩展程序。 我之前从未进行过扩展,对JS / JSON / XML的了解非常有限,但是幸运的是有Google可以提供帮助。 此代码将打印JSON对象中的每个“ sName”元素:

for(var i=0; i<obj.names.length; i++)
{
    var nameItem = createListItem(obj.names[i].sName);
    lb.appendChild(nameItem);
}

我试图用下划线替换名称中的任何空格。

    nameItem = nameItem.replace(/ /g,"_");

在“ var nameItem =”行之后,它停止打印所有名称,并且

    var nameItem = createListItem(obj.names[i].sName).replace(/ /g, "_");

具有相同的负面影响。

只要sName是字符串,这应该可以工作:

var nameItem = createListItem(obj.names[i].sName.replace(/ /g, "_"));

更新:

replace方法仅针对字符串定义,而通常不针对对象定义。 调用未定义的方法将引发异常。 如果在某个时刻未捕获到异常,则执行将停止。 就是这种情况。

我不知道函数createListItem的详细信息,但我想它会使用字符串作为参数并返回一个对象,该对象可能是Element的超类型,因为它将被附加到DOM(请注意,您不能直接附加字符串!) 。 由于Elements没有方法replace ,因此执行在代码尝试调用replace地方停止。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM