2012-01-09 94 views
2

目前我有很多信息在幾個不同的div中。使用jquery在頁面上搜索並返回結果

我希望能夠搜索此信息(即全部在同一頁面上)並將結果打印在div中,而無需使用mysql。

也就是說,如果我搜索'主席','主席'的所有結果都會出現在div中。

我該怎麼做呢?我很喜歡jquery,但我很享受它的驚人力量:)

回答

4

如果你真的想使用jQuery,那麼你可以做這樣的事情:

var wordToSearch = "house"; 
$("div:contains('" + wordToSearch + "')").each(function() { 
    $("#result").append(this.innerText); 
}); 

這裏的jsfiddle例如:http://jsfiddle.net/GEyey/

-1

U可以遍歷所有Div,檢查它們中的一個是否具有文本「椅子」並在ResultDataDiv中添加文本(它可以查看類似的東西):

var divs = document.getElementsByTagName("div"); 
for(var i = 0; i < divs.length; i++){ 
    if (divs[i].innerHTML.indexOf("chair"){ 
    $("#myDataDiv").innerHTML = divs[i].innerHTML; 
    }        
} 

如果你想要一個事件,您的網頁上工作,你應該把它叫做$(document).ready()函數內。

+0

1 。您只搜索「div」標籤。那麼「p」,「span」等等呢? 2.您至少應該使用.indexOf()不等於運算符,因爲您的解決方案意味着div只包含搜索到的單詞。 3. div [i] .innerHTML =「chair」應該是==,我猜。 – ionoy 2012-01-09 13:10:52

+0

根據這個問題,我引用:「目前我有很多信息是在幾個不同的divs。」 – eMi 2012-01-09 13:12:45

+0

更新了答案,我在飛行中做了這個,以便他能夠實現這個想法。< – eMi 2012-01-09 13:17:42

0

你應該做的第一件事就是找出你想要的標籤使搜索。我將CSS類分配給要搜索的div。然後,像這樣的工作:

$('#searchButton').click(function() { 
    $('div.searchable').each(function() { 
     if ($(this).text().indexOf(searchTerm) > -1) { 
      //Do something. 
     } 
    }); 
});