替换文本字符串javascript
我试图用另一个文本字符串替换一个文本字符串这里是我的代码加上js小提琴 HTML 演示替换文本字符串javascript,javascript,Javascript,我试图用另一个文本字符串替换一个文本字符串这里是我的代码加上js小提琴 HTML 演示 您需要再次检查,它返回节点列表,这样您就可以这样做,然后在每个元素之后循环并设置值 var str=document.getElementsByClassName("data" ,"raiting")[0].innerHTML; var n=str.replace(/\*/g,"star"); document.getElementsByClassName("data", "raiting")[0].inn
您需要再次检查,它返回节点列表,这样您就可以这样做,然后在每个元素之后循环并设置值
var str=document.getElementsByClassName("data" ,"raiting")[0].innerHTML;
var n=str.replace(/\*/g,"star");
document.getElementsByClassName("data", "raiting")[0].innerHTML=n;
这是一个示例,因为您只有一个实例需要再次检查,它返回节点列表,所以您可以这样做,然后在每个元素之后循环并设置值
var str=document.getElementsByClassName("data" ,"raiting")[0].innerHTML;
var n=str.replace(/\*/g,"star");
document.getElementsByClassName("data", "raiting")[0].innerHTML=n;
这里是“因为只有一个实例”方法,顾名思义,它返回元素的集合(),而不是单个元素——即使DOM中只有一个元素具有给定的类名
为了进行这样的替换,您需要逐一检查它们。例如:
var elements = document.getElementsByClassName("data rating");
for (var i = 0, l = elements.length; i < l; i++) {
elements[i].innerHTML = elements[i].innerHTML.replace(/\*/g, 'star');
}
方法返回元素的集合(),而不是单个元素,正如其名称所示,即使DOM中只有一个元素具有给定的类名
为了进行这样的替换,您需要逐一检查它们。例如:
var elements = document.getElementsByClassName("data rating");
for (var i = 0, l = elements.length; i < l; i++) {
elements[i].innerHTML = elements[i].innerHTML.replace(/\*/g, 'star');
}
如果元素只出现一次,则此操作将起作用:
var str=document.getElementsByClassName("data rating")[0].innerHTML;
var n=str.replace(/\*/g,"star");
document.getElementsByClassName("data rating")[0].innerHTML=n;
如果存在多个数据评级元素,请使用:
var elems =document.getElementsByClassName("data rating");
for(var i = 0; i < elems.length; i++){
elems[i].innerHTML = elems[i].innerHTML.replace(/\*/g,"star");
}
var elems=document.getElementsByClassName(“数据评级”);
对于(变量i=0;i
这两种方法都纠正了原始代码中的一些缺陷
首先,传递给getElementsByClassName
的参数中的rating拼写错误。其次,getElementsByClassName()
使用由空格分隔的类名来选择具有多个类的元素,而不是多个参数。GetelementsByClassName
返回必须迭代的元素数组
JS Fiddle:如果该元素只出现一次,则此操作将有效:
var str=document.getElementsByClassName("data rating")[0].innerHTML;
var n=str.replace(/\*/g,"star");
document.getElementsByClassName("data rating")[0].innerHTML=n;
如果存在多个数据评级元素,请使用:
var elems =document.getElementsByClassName("data rating");
for(var i = 0; i < elems.length; i++){
elems[i].innerHTML = elems[i].innerHTML.replace(/\*/g,"star");
}
var elems=document.getElementsByClassName(“数据评级”);
对于(变量i=0;i
这两种方法都纠正了原始代码中的一些缺陷
首先,传递给getElementsByClassName
的参数中的rating拼写错误。其次,getElementsByClassName()
使用由空格分隔的类名来选择具有多个类的元素,而不是多个参数。GetelementsByClassName
返回必须迭代的元素数组
JS Fiddle:getElements
表示您可能有多个元素,它们位于索引为0的数组中。在访问innerHtml
getElements
之前选择一个表示您可能有多个元素,它们位于一个0索引数组中。在访问innerHtml
之前选择一个raiting
将破坏您的代码。只是原始帖子中的一个简单拼写错误。另外,传递给getElementsByClassName
的多个类被指定为一个具有空格分隔的类名的参数。小提琴之所以起作用,是因为传递给getElementsByClassName
的第二个参数raiting
被忽略;由于如何指定className
params,因此不会注意到它。再次感谢。)raiting
将破坏您的代码。只是原始帖子中的一个简单拼写错误。另外,传递给getElementsByClassName
的多个类被指定为一个具有空格分隔的类名的参数。小提琴之所以起作用,是因为传递给getElementsByClassName
的第二个参数raiting
被忽略;由于如何指定className
params,因此不会注意到它。再次感谢。)