2014-02-25 48 views
2

代碼應該接收到一個句子/字符串並將其打印出來,如果在單詞中包含的單詞或字母屬於一個字符串 - 該單詞將不會打印。java腳本代碼不打印

問題,爲什麼我的代碼打印什麼? TNX!

用於輸入:你好,你叫什麼名字?和過濾器O

輸出應該是:什麼名字(「什麼」這個詞下劃線)

的問題是,在屏幕上只有一個字秀!不是所有的人

<html> 
    <head> 
    <script> 
    function myfunc() { 
    var count, i =0; 
    var phrase= document.getElementById('phrase').value; 
    var filter = document.getElementById('filter').value; 
    var arr = phrase.split(" ").reverse(); 
    for (i=0; i<arr.length; i++){ 
     if (arr[i].search(filter) == -1){ 
     count++; 
     if (count%2==1) 
      document.getElementById('words').innerHTML="<span class='word'><u>"+ arr[i]+ "</u></span>"; 
     else 
      document.getElementById('words').innerHTML="<span class='word'>"+arr[i]+ "</span>"; 
     } 
} 
document.getElementById('count').innerHTML= count + "word(s) filtered out" ; 
}   
</script> 
</head> 
<body > 
    <h1>Sentence Reverser!</h1> 
    <div> Phrase: <input id="phrase" type="text" size="40"/></div> 
    <div> Filter: <input id="filter" type="text" size="10"/></div> 
    <div><button id="go" onclick="myfunc()"> Go! </button></div> 
    <div id="words"></div> 
    <div id="count"></div> 
</body> 
</html> 
+0

有過濾器的聲明中的空間... –

+0

'變種數,I = 0; '不會將'count'設置爲0,它是'undefined'。因此'count ++;'將計數設置爲'NaN' – lastr2d2

+0

ok,tnx現在效果更好!但是你不打印的話!只有...它應該是yoe – user3322858

回答

0

例如你有一個錯誤(多餘的空格):

var filter = document.ge tElementById('filter').value; 

而成,很明顯:

var filter = document.getElementById('filter').value; 

建議:對鉻測試中,實例,請按F12並查看控制檯錯誤。

0

當您使用時getElementById DOM不會生成。您必須等到構建完成後再添加一個偵聽器。

0

更新代碼:

<html> 
    <head> 
    <script> 
    function myfunc() { 
    var count=0, i =0; 
    var phrase= document.getElementById('phrase').value; 
    var filter = document.getElementById('filter').value; 
    var arr = phrase.split(" ").reverse(); 
    for (i=0; i<arr.length; i++){ 
     if (arr[i].search(filter) == -1){ 
     count++; 
     if (count%2==1) 
      document.getElementById('words').innerHTML+=" <span class='word'><u>"+ arr[i]+ "</u></span>"; 
     else 
      document.getElementById('words').innerHTML+=" <span class='word'>"+arr[i]+ "</span>"; 
     } 
} 
document.getElementById('count').innerHTML= count + "word(s) filtered out" ; 
}   
</script> 
</head> 
<body > 
    <h1>Sentence Reverser!</h1> 
    <div> Phrase: <input id="phrase" type="text" size="40"/></div> 
    <div> Filter: <input id="filter" type="text" size="10"/></div> 
    <div><button id="go" onclick="myfunc()"> Go! </button></div> 
    <div id="words"></div> 
    <div id="count"></div> 
</body> 
</html> 
+0

但爲什麼我需要它? – user3322858

+0

嘗試使用「indexOf」在我上面的答案,而不是「搜索」 – kcak11

+0

但如果我的過濾器是字母h爲什麼不能使用搜索? – user3322858