如何让JS变量和字符串拼接后,是变量而不是字符串?
发现一个很有意思的问题,就是把变量与字符串或者数字拼接后类型变成了字符串,而并执行其中的的 JavaScript 代码。
问题
<ul class="testList">
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<script>
var testList = $(".testList li")
var test0 = "变量0";
var test1 = "变量1";
var test2 = "变量2";
var test3 = "变量3";
for(var i=0;i<testList.length;i++){
testList.eq(i).html("test" + i)
}
</script>
输出结果:
显然这并不是想要的结果
解决 eval()函数
eval() [1] 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
<ul class="testList">
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<script>
var testList = $(".testList li")
var test0 = "变量0";
var test1 = "变量1";
var test2 = "变量2";
var test3 = "变量3";
for(var i=0;i<testList.length;i++){
testList.eq(i).html(eval("test" + i))
}
</script>
输出结果:
参考
https://xiaodongxier.com