2012-01-09 90 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. 
     } 
    }); 
}); 
相关问题