[英]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.