在jQuery中获取特定的父级



我有以下 HTML,我需要获取对象的第一个div 父级(折叠)

如果此父级有一个类(零类)。我想有下一个div 父级..

<div>
  <div id = "DeadCode">
    <div class = "ZeroClass">
      <table class = "zeroTable">
         <...tableData...>
      </table>
    </div>
  </div>
</div>

jQuery函数:

function ResizeGrid(){
    var collapse = $(".zeroTable").parent();
    if ($(collapse).hasClass("ZeroClass")) {
        collapse = $(collapse).parents($("div"));
    }
}

一切顺利,但是当通过 if 语句时,它使 Collapse Null .. 有什么想法吗?

刚刚处理了您给出的 HTML 和脚本,并发现了以下内容 查看下面的演示

http://jsfiddle.net/ffRN7/37/

演示 1 会将类添加到最接近的div

修改了用于在以下脚本中查找最接近的div 的行...

$(collapse).closest("div").addClass("divclass");

http://jsfiddle.net/ffRN7/38/

Demo2 会将类添加到没有任何 id 或类的父div 中小提琴无法访问时的脚本:

function ResizeGrid(){
        var collapse = $(".zeroTable").parent();
    if ($(collapse).hasClass("ZeroClass")){
            $(collapse).parents("div").addClass("divclass");
        }
    }
        $("a").bind("click", ResizeGrid);

.CSS

.zeroTable td {border:1px solid black}
.ZeroClass {border:1px solid green; width:90%; height:50px; margin:5px;}
#DeadCode {border:1px solid blue; width:95%; height:100px; }
.divclass{height:200px; padding:5px; background-color:yellow;}
第一步使用

parent,第二步使用 closest

function ResizeGrid() {
    var $collapse = $(".zeroTable").parent();
    if ($collapse.hasClass("ZeroClass")) {
        $collapse = $collapse.closest("div");
    }
}

您的问题在于这一行:

collapse = $(collapse).parents($("div"));

您首先$("div")获取所有div 元素,然后告诉$(collapse).parents()匹配其中一个。

我的代码:

$collapse = $collapse.closest("div");

告诉 jQuery 查找最接近的父div。

最好在

jQuery 变量前面加上 $,以帮助跟踪哪些变量是 jQuery 对象,哪些是常规 DOM 节点。

相关内容

  • 没有找到相关文章

最新更新