2016-11-30 17 views
1

私のテキストボックスに入力した単語を次のように表示しようとしています:(thomas)= "t、th、tho、thom、thoma、thomas "それを実現するためにcharAtで何を入力しますか?それとも別のものを追加する必要がありますか?前もって感謝します! Javascript-表示する単語を1文字+ 1文字など

<head> 
    <meta charset="utf-8"> 

<script> 

    function printit() 
    { 
    var temptext = document.getElementById("mytext").value; 
    var tempa = temptext.charAt(); 
    document.getElementById("translated").innerHTML=tempa; 

    } 

</script> 


</head> 


<body> 
    <h1> </h1> 

<form name="f1"> 
<input type="text" id="mytext" value="" /> 
<input type="button" value="print" onclick="printit()"/> 

</form> 
<div id="translated" style="background-color:gray"></div> 

</body> 


</html> 
+1

[ループ](https://developer.mozilla)内の['substring'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substring) .org/en-US/docs/Web/JavaScript/Reference/Statements/for)の方が簡単です。 – Teemu

+0

@Teemu確かに:) – xShirase

答えて

1

Array.fromString#slice方法を用いES6溶液。 Array#mapString#split方法を使用

<script> 
 
    function printit() { 
 
    var temptext = document.getElementById("mytext").value; 
 
    document.getElementById("translated").innerHTML = Array.from({ 
 
     length: temptext.length 
 
    }, (v, i) => temptext.slice(0, i + 1)).join(); 
 

 
    } 
 
</script> 
 

 

 
<form name="f1"> 
 
    <input type="text" id="mytext" value="" /> 
 
    <input type="button" value="print" onclick="printit()" /> 
 

 
</form> 
 
<div id="translated" style="background-color:gray"></div>


<script> 
 
    function printit() { 
 
    var temptext = document.getElementById("mytext").value; 
 
    document.getElementById("translated").innerHTML = temptext.split('').map(function(v, i) { 
 
     return temptext.slice(0, i + 1) 
 
    }).join(); 
 

 
    } 
 
</script> 
 

 

 
<form name="f1"> 
 
    <input type="text" id="mytext" value="" /> 
 
    <input type="button" value="print" onclick="printit()" /> 
 

 
</form> 
 
<div id="translated" style="background-color:gray"></div>

1

簡単なソリューション:

function writemore(){ 
 
    var a = document.getElementById("mytext").value; 
 
    var out = []; 
 
    for(var i=1;i<a.length+1;i++){ 
 
     out.push(a.substring(0,i)); 
 
    } 
 
    document.getElementById("translated").innerHTML = out.join(','); 
 
};
<form name="f1"> 
 
    <input type="text" id="mytext" value="" /> 
 
    <input type="button" value="print" onclick="writemore();" /> 
 

 
</form> 
 
<div id="translated" style="background-color:gray"></div>

0

あなたは、予想される結果を生成するためのArray.prototype.mapString.prototype.sliceを使用することができます。

function printit(){ 
 
    var text = document.getElementById('mytext').value; 
 
    document.getElementById("translated").innerHTML = text.split('').map(function(v, i){ return text.slice(0, i + 1)}).join(', '); 
 
}
<h1> </h1> 
 

 
<form name="f1"> 
 
    <input type="text" id="mytext" value="" /> 
 
    <input type="button" value="print" onclick="printit()" /> 
 

 
</form> 
 
<div id="translated" style="background-color:gray"></div>

0
If you want to display "t, th, tho, thom, thoma, thomas" you should to store your position of charAt(position+1) and make for condition.., so : 

t : 0==> display = display + ", "+ charAt(position+1) 
th : 1==> display = display + ", "+ charAt(position+1) 
tho: 2 ==> display = display + ", "+ charAt(position+1) 
0

最も簡単な方法は、あなたがのcharAtを使用して設定している場合、このようになります:それは文字通り目、」トンを印刷する必要がある場合、

var outputString = "", inputString = "Thomas", i = -1, inputLength = inputString.length 

while(++i < inputLength){ 
    outputString += inputString.charAt(i) 
    console.log(outputString) 
} 

tho、thom、thoma、thomas」であり、一連のログではありません。このバージョンではこれを実現します。

var outputString = "", outputArray = [], inputString = "Thomas", i = -1, inputLength = inputString.length 

while(++i < inputLength){ 
    outputString += inputString.charAt(i) 
    outputArray.push(outputString) 
} 


console.log(outputArray.join(", ")) 
関連する問題