<div id="d">
<span>第一行字</span>
<span>第二行字</span>
<span>第三行字</span></div>
<script>
var str=document.getElementById("d").innerHTML;
document.getElementById("d").innerHTML=str.replace(/()/gi,"<font color=red>$1</font>");
alert(document.getElementById("d").innerHTML);
</script>
结果:
<SPAN>第一行字</SPAN> <SPAN>第二行字</SPAN> <SPAN>第三行字</SPAN>
问:
1.显示在网页上的<SPAN>为什么不被解析?
2.alert(...)时,正则表达式的匹配项为空时,<span>标签中的“<”和“>”为什么会被显示成lt和ht?而不直接显示“<”和“>”,如果正则表达式的匹配项不为空,显示“<”和“>”?
糊涂了
<span>第一行字</span>
<span>第二行字</span>
<span>第三行字</span></div>
<script>
var str=document.getElementById("d").innerHTML;
document.getElementById("d").innerHTML=str.replace(/()/gi,"<font color=red>$1</font>");
alert(document.getElementById("d").innerHTML);
</script>
结果:
<SPAN>第一行字</SPAN> <SPAN>第二行字</SPAN> <SPAN>第三行字</SPAN>
问:
1.显示在网页上的<SPAN>为什么不被解析?
2.alert(...)时,正则表达式的匹配项为空时,<span>标签中的“<”和“>”为什么会被显示成lt和ht?而不直接显示“<”和“>”,如果正则表达式的匹配项不为空,显示“<”和“>”?
糊涂了
正则表达式无论什么都会显示出来,标签也是有编码的
<div id="d">
<span>第一行字</span>
<span>第二行字</span>
<span>第三行字</span></div>
<script>
var str=document.getElementById("d").innerHTML;
document.getElementById("d").innerHTML=str.replace(/<span>([^<]+)<\/span>/gi,"<span><font color=red>$1</font><\/span>");
alert(document.getElementById("d").innerHTML);
</script>