В этом скрипте я'м пишу, я считаю себя, используя .родитель() до семи раз подряд, чтобы получить элементы. Пока это работает, кажется, что там должен быть более простой способ сделать это/ функция I'м не знают. Любые идеи, кроме более конкретные классы/идентификаторы на несколько элементов?
По сути, мой вопрос сводится к доступу к div с ID внешний
, когда я ссылки в span с ID и#39;innerSpan' в формате HTML ниже:
<div id='outer'>
<a href="some_url">
<span id="inner">bla bla</span>
</a>
</div>
Поэтому в настоящее время, я хотел бы сделать что-то вроде этого:
ВАР внешний = $(' Я').родитель().родитель()
и что сходит с ума с глубоко вложенные элементы.
Еще один пример:
Вот мой 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 так что я могу динамически добавить несколько строк. Вы Don'т действительно нужна эта функция на этот вопрос, но в основном я получаю эти коды так:
get_suboption_row($(this).parent().parent().parent().parent().parent().parent().parent().attr('id'), $(this).parent().parent().parent().parent().attr('id'));
спасибо
jsFiddle:
нажмите Добавить другой, чтобы вызвать событие
У вас есть 2 вложенных таблиц
чтобы получить то, что вы хотите, вы можете использовать два метода перемещения дом .ближайший()
или .родители()
.ближайший()
путешествия вверх по дереву DOM, пока не найдет матч за поставленный селектор.родители()
перемещается вверх дерево DOM в документ'с корневого элемента, добавляя каждый родительский элемент временной коллекции; затем он фильтрует, что коллекция, основанная на селектор, если один поставляется
Использование вложенных таблиц:
$(this).closest('table').closest('tbody').attr('id');
<!
$(this).parents('table').parents('tbody').attr('id');
[jsFiddle демо][3]
Если вы знаете имя класса CSS для этого элемента, вы можете вызвать метод ближайший()
var thatParent= $("#someId").closest(".somCSSClassName")
Так что ваш код Кэл быть переписан как
get_suboption_row($(this).closest("someClass").attr('id'),
$(this).closest("someOtherClass").attr('id'));
Редактировать : после просмотра ваших JSfiddle
Использовать имя класса, чтобы получить родительскую таблицу.
alert($(this).closest('tbody').closest('.table-bordered').attr('id'));
Работая образец :