jquery如何获得父级的父级元素?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery如何获得父级的父级元素?相关的知识,希望对你有一定的参考价值。

参考技术A 你这里有2个p元素。不太合理。

如要获得父级的父级点两次不就可以了么?

parent()两次啊。。首先获得p的父div在获得div的父级外层的div。这样问题很明显啊。
参考技术B parent()是
父元素
就一个,你要选取class=x的元素,就是第一个p元素的父元素的父元素:
$("p:eq(0)").parent().parent().css("background",
"yellow");
或者p元素父元素的父元素类为x的元素:
$("p").parent().parent(".x").css("background",
"yellow");
或者p元素祖先元素(祖先就很多个了)中类为x的元素:
$("p").parents(".x").css("background",
"yellow");

选择 $.ajax Jquery 的父级?

【中文标题】选择 $.ajax Jquery 的父级?【英文标题】:Select parent of $.ajax Jquery? 【发布时间】:2012-02-17 13:08:03 【问题描述】:

如何选择 $.ajax 的父元素或触发 $.ajax 的元素的父元素。我需要某种参考,以便将结果数据应用到它:

var a = $a.val();
var b = $b.val();

 $.ajax(
      type: "POST",
      url: "/Controller/Action",
      data:  a: a, b: b ,
      success: function (data) 

          var values = data.values,
              $elements = $();
              for (i = 0; i < 142; i++) 
                  $elements = $elements.add($("<div class='single'>").css('height', values[i]).css('margin-top', 26 - valuesG[i]));
              
                //Here it should reference $(this).parent().parent().. something
               //and not :last, because there are many .second elems... 
              //not only :last is being changed?

              $elements.appendTo($(".second:last"));
              $(".second:last").children(".single").addClass("ui-selected");
      ,
      traditional: true
);   

$(this).parent()在ajax成功函数中返回jQuery() 有什么想法吗?

【问题讨论】:

【参考方案1】:

使用上下文选项:

$.ajax(
    url: "test.html",
    context: document.body,
    success: function()
      $(this).addClass("done");
   
);

jQuery Reference

【讨论】:

上下文:这个,应该做!谢谢!【参考方案2】:

因为默认情况下ajax 调用是asynch,所以当您在success 中执行$(this) 时,this 引用ajax api 等$(this).parent() 引用jQuery()

为了避免这种情况,在 ajax 调用开始在 success 中使用之前,将 element reference 保存在 variable 中。

target_element = $(this);

$.ajax(
      type: "POST",
      url: "/Controller/Action",
      data:  a: a, b: b ,
      success: function (data) 
       // ....................
               target_element.parent()
     ...............................

【讨论】:

【参考方案3】:

把ajax的调用放到一个函数中,并将一个元素参数传递给函数?

function doAjax(triggerElement)

   $.ajax(
      url: whatever,
      context: triggerElement,
      success : function (content)  $(this).html(content);  
   );


$(function () 

   $('#triggerElementId').click(function ()  doAjax(this); );

);

【讨论】:

以上是关于jquery如何获得父级的父级元素?的主要内容,如果未能解决你的问题,请参考以下文章

css如何让子元素不受父级的父级的overflow:hidden影响

具有绝对父级的 div 的 jQuery 动画宽度

选择 $(this) 元素的父级的兄弟姐妹

jquery学习笔记3 jq遍历

选择 $.ajax Jquery 的父级?

如何使用JQuery在输入中选择其孩子在最后一个不为空的父级的上一个兄弟姐妹