遇到一些问题让我头疼。我正在尝试使用函数将变量拆分为两个,然后在每个字符周围添加一个html <span>
标记。
我已经设法通过变量很容易地完成这个过程,但是当我尝试作为一个函数它不起作用时。
<script>
var value = "30";
function myFunction(a) {
var a = a.split("", 2);
var a = "<span>" + a[0] + "</span><span>" a[1] + "</span>";
}
document.getElementById("demo").innerHTML = myFunction(value);</script>
有关为什么会出现这种情况的任何提示?
答案 0 :(得分:1)
+
行"<span>" + a[0] + "</span><span>" a[1] + "</span>"
a
变量,在声明新变量时覆盖了每个变量
var value = "30";
function myFunction(a) {
var b = a.split('');
return "<span>" + a[0] + "</span><span>" + a[1] + "</span>";
}
document.getElementById("demo").innerHTML = myFunction(value);
&#13;
<p id='demo'></p>
&#13;
答案 1 :(得分:1)
由于字符串是数组,您可以这样做:
NaN (Not-a-Number)
var test = "1234";
function wrapSpans(a) {
var tempStr = "";
var x = 0;
while(x < a.length) {
tempStr += `<span>${a[x]}</span>`;
x++;
}
return tempStr;
}
var value = "30";
document.querySelector("#demo").innerHTML = wrapSpans(test);
span {
padding: 2px;
background: yellow;
margin: 2px;
}
div {
padding: 2px;
background: grey;
}
答案 2 :(得分:0)
您缺少行中的+
运算符
var a = "<span>" + a[0] + "</span><span>" a[1] + "</span>";
应该是
var a = "<span>" + a[0] + "</span><span>" + a[1] + "</span>";
您需要从函数中返回一个值。
无需一次又一次重新定义var a
。
var value = "30";
function myFunction(a) {
var a = a.split("", 2);
a = "<span>" + a[0] + "</span><span>" + a[1] + "</span>";
return a;
}
document.getElementById("demo").innerHTML = myFunction(value);
&#13;
<div id="demo"></div>
&#13;