Javascript 使用.get()和.find()/.filter()仅显示html页面搜索结果中的特定div
我在页面上有一个搜索栏(/search)&当用户搜索某个内容时,它会对输入文本运行一个过滤器,并用过滤结果刷新页面 如果有人搜索“香蕉”一词,搜索结果的URL将是 /搜索?searchBoxText=香蕉 我试图在不刷新页面的情况下实现这一点 在site.js中: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(); $
$(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()。谢谢!