我想檢查是否有任何div包含輸入字段中輸入的所有單詞。然而,目前我陷入了一種情況,即一旦輸入空格,它就會從頭開始,因此類似OR運算符而不是AND運算符。任何人都可以把我推向正確的方向嗎?非常感謝!查看div是否包含一個或多個輸入的單詞(Javascript)
這是我到目前爲止有:
<div class="search">aa ab ac ad</div>
<div class="search">ab ba bb bc</div>
<div class="search">bb cc dd ee</div>
<script>
function search(query) {
var divs= document.getElementsByTagName('div');
var words = query.toLowerCase().split(" ");
for (var h = 0, len = divs.length; h < len; ++h) {
for (var i = 0; i < words.length; i++) {
if (divs[h].innerHTML.indexOf(words[i]) == -1) {
divs[h].style.backgroundColor = '#fff';
}
else {
divs[h].style.backgroundColor = '#ddd';
}
}
}
}
</script>
<input type="text" onkeyup="search(this.value);">
顯然,我也不是很清楚。我很抱歉。
我需要什麼方向去使它在Javascript中,以便它查找div是否包含AND字[0]和字[1]和字[2]等(因此,以任何隨機順序) ?
現在,當發生分割時,函數將從頭開始。
我肯定會考慮使用正則表達式這一點,似乎更爲合適。 – elclanrs 2013-02-12 00:44:58
在'divs [h] .style.backgroundColor ='#fff'後面加上'break',這樣一旦發現一個單詞缺失,它就會設置顏色並移動到下一個div。 – 2013-02-12 00:45:32
...你也可以在內部循環之後放置'divs [h] .style.backgroundColor ='#ddd';'。每次匹配單詞時都不需要設置樣式。但是,你需要使用標籤「繼續」外層循環,而不是打破內層循環。 – 2013-02-12 00:47:17