Javascript 使用.get()和.find()/.filter()仅显示html页面搜索结果中的特定div

Javascript 使用.get()和.find()/.filter()仅显示html页面搜索结果中的特定div,javascript,jquery,html,get,Javascript,Jquery,Html,Get,我在页面上有一个搜索栏(/search)&当用户搜索某个内容时,它会对输入文本运行一个过滤器,并用过滤结果刷新页面 如果有人搜索“香蕉”一词,搜索结果的URL将是 /搜索?searchBoxText=香蕉 我试图在不刷新页面的情况下实现这一点 在site.js中: $(function () { $("#searchBox").keyup(function (e) { var searchBoxText= $("#searchBox").val(); $

我在页面上有一个搜索栏(/search)&当用户搜索某个内容时,它会对输入文本运行一个过滤器,并用过滤结果刷新页面

如果有人搜索“香蕉”一词,搜索结果的URL将是

/搜索?searchBoxText=香蕉

我试图在不刷新页面的情况下实现这一点

在site.js中:

$(function () { 
    $("#searchBox").keyup(function (e) {
        var searchBoxText= $("#searchBox").val();
        $.get("/Search?searchBoxText=" + searchBoxText, function (getHtml) {
            $("#resultsDiv").html(getHtml);
        });
    });
});
问题是它在
#resultsDiv
中显示整个页面,我希望它只显示
#resultsDiv
。因此,它再次显示标题、搜索栏和按钮

基本上,我希望在旧的
#resultsDiv
中显示新结果(将在
#resultsDiv
中),但我似乎无法约束.get()仅从结果页面获取特定元素

我试着去做

  • $.get(“/Search?searchBoxText=“+searchBoxText+”#resultsDiv”,函数(getHtml)

  • $(“#resultsDiv”).html(getHtml)。查找(“#resultsDiv”);

和其他类似的改动,但似乎没有任何效果。

您可以:

$("#resultsDiv").html($(getHtml).find("#resultsDiv").html());

但是,这不是最好的方法。您对
/Search?
的调用应该只返回要更新的页面部分的HTML代码。这应该在服务器端完成(您没有说明如何返回结果,因此我无法帮助您)。

您在浏览器控制台中显示任何错误吗?我得到一个“404”(未找到)“但我很确定它与此问题无关。代码工作正常,它获取html页面并显示它,它只显示所有内容,我只想显示其中的一个div哇,就是这么简单。我没有尝试在最后添加另一个.html()。谢谢!