我有以下 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 节点。