我正在为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, "_");
也有同样的负面影响。
答案 0 :(得分:2)
如果sName
是字符串:
var nameItem = createListItem(obj.names[i].sName.replace(/ /g, "_"));
<强>更新强>
replace
方法仅针对strings定义,而不是针对objects定义。
调用未定义的方法会引发异常。
如果在某个时刻未捕获到异常,则执行停止。
这就是这种情况。
我不知道函数createListItem
的详细信息,但我想它会将一个字符串作为参数并返回一个对象,可能是超类型Element
,因为它是被附加到DOM(请注意,您不能直接追加字符串!)。
由于Elements没有方法replace
,因此执行会在代码尝试调用replace
的位置停止。