如何使用jQuery选择click元素父元素?

时间:2018-11-16 10:22:02

标签: javascript jquery

我有以下HTML代码,并且正在使用此类.educacao_search的click event调用ajax。

<div class="tab-pane active" id="tab-educacao">
    <br>
    <div class="row">
        <div class="col-md-12">
            <h4>EucaÇÃo</h4>
            <ul class="list-inline three">
                <li><a class="educacao_search" data-slug="ension">Ensino</a></li>
                <li><a class="educacao_search" data-slug="enem">ENEM</a></li>
                <li><a class="educacao_search" data-slug="escolas">Escolas</a></li>
                <li><a class="educacao_search" data-slug="lingua-e-linguagens">Lingua e Linguagens</a></li>
                <li><a class="educacao_search" data-slug="historia">História</a></li>
                <li><a class="educacao_search" data-slug="todos">Todos</a></li>
            </ul>
        </div>
    </div>
    <div class="row">
        <div class="col-md-6">
            <div class="form-group has-feedback has-search">
                <input type="text" class="form-control" placeholder="Search" id="do_search_educacao">
                <span class="glyphicon glyphicon-search form-control-feedback"></span>
            </div>
        </div>
    </div>
    <br>
    <div class="row"><div class="show_result"></div><br></div>
</div>

现在我成功了,我想在show_result类中显示结果。

要执行此操作,我正在使用折叠的jQuery代码,但似乎不起作用!我的意思是结果没有显示在名为show_result

的此类中
$(this).parents(".tab-pane").find(".show_result").html(result);

注意:这是一个引导程序标签,共有5个具有相同类别的标签,分别为educacao_searchshow_result

更新

Ajax呼叫:

$(".educacao_search").click(function () {                        
    var slug = $(this).data('slug');
    $.ajax({
        type: 'POST',
        url: urls.ajax_url,
        data: {
            'slug': slug,
            'action': 'get_post_content'
        }, success: function (result) {
            $(this).parents(".tab-pane").find(".show_result").html(result);
            //$(this).find(".show_result").html(result);
        },
        error: function () {
            alert("error");
        }
    });
});  

1 个答案:

答案 0 :(得分:3)

var obj = $(this);之前声明.ajax,并在success回调中使用它。

$(".educacao_search").click(function () {                        
    var slug = $(this).data('slug');
    var obj = $(this);
    $.ajax({
        type: 'POST',
        url: urls.ajax_url,
        data: {
            'slug': slug,
            'action': 'get_post_content'
        }, success: function (result) {
            obj.parents(".tab-pane").find(".show_result").html(result);
            //$(this).find(".show_result").html(result);
        },
        error: function () {
            alert("error");
        }
    });
});  

了解this关键字在javascript中的工作原理非常重要。请参考下面的链接,这将有所帮助。

  1. https://javascript.info/object-methods
  2. https://medium.com/tech-tajawal/javascript-this-4-rules-7354abdb274c