前几天 写一个字符串分割转换效果,当时输出的时候确出现了 undefined

<div class=”box_left_list_content”>
<ul>
<li >
<p class=”l”>111111111</p>
<div class=”l artid” id=”artid1″>乐天熊字饼,苹果,萝卜,咸鱼</div>
</li>
<li >
<p class=”l”>2222222222</p>
<div class=”l artid” id=”artid2″>乐天熊字饼,苹果、萝卜,咸鱼</div>
</li>
</ul>
</div>

js代码

<script type=”text/javascript”>
for(var i=1;i<=$(“.box_left_list_content ul li”).length;i++){
if($(“#artid”+i).html()){
var keywt=$(“#artid”+i).html().replace(/、/,’,').replace(/,/,’,').split(“,”);
$(“#artid”+i).html(
function (){
var keywts;
for(var n=0;n<keywt.length;n++){
keywts+=’<a href=”/plus/search.php?kwtype=0&q=’+encodeURI(keywt[n])+’”>’+keywt[n]+’</a>’;
}
return keywts;
}
);
}
}
</script>

执行结果会多出一个undefined。 后来问了一个大神朋友 才发现了问题

js声明变量没有赋值的时候是undefined类型,undefined类型遇到+号会被隐式转换为字符串,所以咯 就会多出了一个undefined了

所以在声明  var keywts=‘’  这样就可以了。

最终js

<script type=”text/javascript”>
for(var i=1;i<=$(“.box_left_list_content ul li”).length;i++){
if($(“#artid”+i).html()){
var keywt=$(“#artid”+i).html().replace(/、/,’,').replace(/,/,’,').split(“,”);
$(“#artid”+i).html(
function (){
var keywts=‘’;
for(var n=0;n<keywt.length;n++){
keywts+=’<a href=”/plus/search.php?kwtype=0&q=’+encodeURI(keywt[n])+’”>’+keywt[n]+’</a>’;
}
return keywts;
}
);
}
}
</script>

Sorry, the comment form is closed at this time.

   
© 2012 Ai-WEB的博客 Suffusion theme by Sayontan Sinha