2017-03-08 54 views
0

有一些問題讓我的頭在此附近。我試圖用一個函數將變量分成兩部分,然後在每個字符周圍添加一個html <span>標籤。 我已經設法通過一個變量很容易地完成這個過程,但是當我嘗試作爲一個函數時它不起作用。Javascript - 分割數字作爲函數變量

<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> 

任何提示,爲什麼這可能是?

回答

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);
<p id='demo'></p>
時覆蓋他們每個人

1

由於字符串是數組,你可以這樣做:

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; 
 
}
<div id="demo"></div>

0
  1. 你缺少的行+運營商
    var a = "<span>" + a[0] + "</span><span>" a[1] + "</span>";

    應該

    var a = "<span>" + a[0] + "</span><span>" + a[1] + "</span>";

  2. 你需要從函數返回一個值。

  3. 不需要重新定義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);
<div id="demo"></div>