У меня есть многие из нижеприведенных элементов div 'k-top
' с той же внутренней структурой div, за исключением различного уникального текста в двух местах, в 'k-in' и в моем идентификаторе флажка.
<div class="k-top">
<span class="k-icon k-i-expand"></span><-------------- trigger click on this if below text is found
<span class="k-checkbox-wrapper" role="presentation">
<input type="checkbox" tabindex="-1" id="unique TEXT99" class="k-checkbox">
<span class="k-checkbox-label checkbox-span"></span>
</span>
<span class="k-in">unique TEXT99</span></div><- if this text is found in k-in trigger click on elem above
Я хочу перебрать все мои span.k-ins
, пока не найду innerText для соответствия, содержащему, например, ' unique ', а затем, как только unique будет найден, я хочу .click()
; на его родственном элементе '.k-i-expand
', как показано в разметке выше. Я не хочу вызывать .click()
; на всех .k-i-expand
только указанный c тот, у которого тот же родитель, что и мой unique text
.
До сих пор я пробовал .closest
, я также пробовал sibling.parent. . оба возвращают значение null или undefined .. Обратите внимание, я не использую jQuery.
Приведенное ниже работает успешно, чтобы щелкнуть все .k-i-expand
, но мне нужно .click () только тот, где k-in innerText
содержит «уникальный». В идеале я бы использовал начинается с или содержит, но при необходимости я бы указал все слово, например, unique TEXT99
let exp = document.querySelectorAll('.k-i-expand');
let i;
for (i = 0; i < exp.length; ++i) {
exp[i].click();
};
Другие предыдущие попытки можно увидеть здесь: как запустить файл. нажмите на селектор родительского элемента elems?