在我写的这个脚本中,我发现自己一直使用.parent()连续七次来获取元素。虽然这样做,似乎可以/应该是一个更简单的方法来做这个/我不知道的功能。除更多元素之外的任何想法,更具体的类/ ids?
基本上,当我在下面的html中引用id为’innerSpan’的跨度时,我的问题归结为访问id为外部的div:
<div id='outer'> <a href="some_url"> <span id="inner">bla bla</span> </a> </div>
所以目前,我会做这样的事情:
var outer = $(‘#inner’)。parent()。parent()
并且深深嵌套的元素变得疯狂。
另一个例子:
这里我的html:
<div id="options_right"> <table id="product_options_list" class="table table-bordered"> <tbody id="1"> <tr> <td> <select name="option_1_val[0]" class="option_table_select"> <option value="Red">Red</option> <option value="Blue">Blue</option> <option value="Green">Green</option> </select> </td> <td> <table class="table sub_options" id="0"> <tbody> <tr> <td> <select name="option_1_sub[0][]" class="option_table_select sub_option_select"> <option value="">None</option> <option value="2">Size</option> </select> <div class="sub_option_value_holder"> <select name="option_1_sub_val[0][]" class="sub_option_values" style="display:none;"></select> </div> </td> <td> <a href="#" class="remove_sub_option btn btn-primary">Remove</a> </td> <td> <a href="#" class="add_sub_option btn btn-primary">Add Another</a> </td> </tr> </tbody> </table> </td>
和我的脚本。我写了一个函数,需要传递它的主行tbody以及辅助表id的id,以便我可以动态添加更多的行。你不需要这个问题的功能,但基本上我得到这样的id:
get_suboption_row($(this).parent().parent().parent().parent().parent().parent().parent().attr('id'),$(this).parent().parent().parent().parent().attr('id'));
谢谢
解决方法
你有2个嵌套表,
要得到你想要的,可以使用这两个DOM遍历方法.closest()或.parents():
要得到你想要的,可以使用这两个DOM遍历方法.closest()或.parents():
$(this).closest('table').closest('tbody').attr('id');
$(this).parents('table').parents('tbody').attr('id');
http://api.jquery.com/closest
http://api.jquery.com/parents
再次看看:数字ID仅在HTML5中有效。
原文地址:https://www.jb51.cc/jquery/182477.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。