私が書いているこのスクリプトでは、要素を取得するために .parent() を最大 7 回連続して使用していることに気付きました。これは機能しますが、私が気付いていない/機能を実行するためのより簡単な方法がある可能性がある/あるべきだと思われます。より多くの要素のより具体的なクラス/ID 以外のアイデアはありますか?
基本的に、私の質問は、outer
以下の 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'));
ありがとう
jsFiddle: http://jsfiddle.net/Hg4rf/
別の追加をクリックしてイベントをトリガーします