2
Я настраиваю Sage CRM, поэтому я не могу контролировать HTML-код, который написан, и не может добавлять идентификаторы или классы в таблицы, в которых используются плюсы CRM вне. Я хочу скрыть верхнюю (не верхнюю) таблицу уровней на основе выбора пользователем раскрывающегося списка. Я могу получить только селектор jQuery, подключенный к строке заголовка таблицы в таблице, которую я хочу скрыть.Используйте JQuery, чтобы найти родительскую таблицу таблицы td
DOM-выходит что-то вроде:
//Lots of other table structures above this in the DOM....
<table> <---- this is the table I want to show or hide based on the users selection
<tbody>
<tr>
<td>
<table>
<tbody>
<tr>
<td class="PANEREPEAT"> <---- this is the node I can get selector to
Valuation information
////
Так что я ниже стороне клиента JavaScript:
var val_information_screen;
$('.PANEREPEAT').filter(function() {
//Find the valuation information screen
return $(this).text() == 'Valuation information';
}).each(function() { //iterate through all of these (there should only be one!)
val_information_screen = $(this);
});
var sel_ofee_type = $('#ofee_type');
if (sel_ofee_type.val() == '006') {
val_information_screen.closest('table').parents("table:first").show();
} else {
val_information_screen.closest('table').parents("table:first").hide();
}
Это работа, это просто не особо красиво. Бит, который я действительно ненавижу, ниже. Есть ли лучший способ переместить DOM с помощью jQuery?
val_information_screen.closest('table').parents("table:first").show();
val_information_screen.closest('table').parents("table:first").hide();
'.closest()' и '.parents()' (и '.parent()') - это то, как вы проходите DOM. Вы можете использовать '.closest (" table "). Closeest (" table ")' или '.parents (" table "). Eq (1)' – Ian
@ Если вы правы, в основном, но обратите внимание, что '.closest() 'будет включать в себя стартовый узел как совпадение. То есть ближайший '
@Pointy Oh snap! Хорошая точка зрения. Да, ты прав. Обычно я помню '.closest()' начинает смотреть на текущий элемент, но даже не думал об этом для прикованных вызовов '.closest()' с тем же селектором! – Ian
ответ
Если вы уверены, что он имеет фиксированную структуру, то вы можете использовать это,
В вашем случае,
источник
2013-08-06 16:33:26
DOM исправлена, и это обеспечивает более элегантное решение и функции. Спасибо за вашу помощь. Чтобы быть ясным, если бы я захотел шагнуть на один стол дальше UP DOM, я бы изменил .eq (1) на .eq (2)? – MagicalArmchair
yup. В точку... –
Если DOM (в частности, исходя из таблицы, которую вы хотите спрятаться до тех пор, пока td, который у вас есть как селектор) в значительной степени фиксирован, тогда можно использовать селектор ниже.
источник
2013-08-06 16:59:47 whyAto8
Смежные вопросы