【问题标题】:.get() and .find() for search results.get() 和 .find() 用于搜索结果
【发布时间】:2017-01-26 08:18:50
【问题描述】:

所以我在页面上有一个搜索栏 (/Search),当用户搜索某些内容时,它将对输入文本运行过滤器并使用过滤后的结果刷新页面。

如果有人搜索了“猴子”这个词,搜索结果的 URL 将是

/Search?searchBoxText=monkey

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

所以在我的 main.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", function (getHtml)

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

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

谢谢!

【问题讨论】:

    标签: javascript jquery html get


    【解决方案1】:

    请尝试关注

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

    Demo

    【讨论】:

    • getHtml 是一个字符串,所以不会有 find() 方法
    • 是的,这不起作用。我相信这是我尝试过的事情之一
    • 还是不行。我收到控制台错误消息:“Uncaught TypeError: getHtml.filter is not a function”
    • @Sadikhasan 哎呀。我不知道您是否在我删除评论之前看到了我的评论,但该错误与此无关。我之前只是错过了。虽然你的方法还是不行,但是控制台没有报错信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    • 2019-12-31
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多