【问题标题】:Jquery parent() and closest() not workingJquery parent()和最接近()不起作用
【发布时间】:2018-04-18 16:08:08
【问题描述】:

早上好,这是我的 HTML:tab2 不是静态的,我可以拥有 tabn。 我想获取 taskFilter tab2 父级的 id,但我得到的是 tab-home,这是我的 js。

var ntab = $('#taskFilter').closest('.tab-pane').attr('id');
var ntab2 = $('#taskFilter').parent().attr('id');
vat ntab3 = $('#taskFilter').parent().parent().attr('id');
console.log(ntab, ntab2, ntab3);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="tab-home" class="tab-pane"></div>
<div id="tab2" class="tab-pane">
    <div id="tasksFilter"></div>
</div>

日志结果是;

ntab = tab-home,   
ntab2 = undefined,   
ntab3 = indefined.

或者,如果您能告诉我另一种获取 taskFilter 父级 ID 的方法
感谢您的帮助。

【问题讨论】:

  • 您的选择器中有多个拼写错误。 #taskfilter 应该是 #tasksFilter。另外,你有vat 而不是var。解决这个问题,你的前两个例子就可以正常工作了。
  • 请妥善保管您的代码示例。错别字真的没必要。

标签: javascript jquery parent closest


【解决方案1】:

修复代码中的拼写错误,输出为:

tab2 tab2 undefined

最后一个未定义是因为taskfilter 没有祖父母。

var ntab = $('#taskfilter').closest('.tab-pane').attr('id');
var ntab2 = $('#taskfilter').parent().attr('id');
var ntab3 = $('#taskfilter').parent().parent().attr('id');
console.log(ntab, ntab2, ntab3);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="tab-home" class="tab-pane"></div>
<div id="tab2" class="tab-pane">
  <div id="taskfilter"></div>
</div>

【讨论】:

  • 我修正了错别字,但我仍然得到“tab-home”
  • 您在我的回答中尝试过代码 sn-p 吗?不到 10 行……你应该能够找到与你的代码的不同之处。
  • 我做到了,并修复了它们,我认为问题是因为
    在不同的视图中。
  • 我们只能使用我们拥有的代码,如果您可以在代码 sn-p 中重现错误,那将很容易查看。
  • 我不能,代码太多了。我要尝试另一种方式。谢谢
猜你喜欢
相关资源
最近更新 更多
热门标签