Как найти правильный селектор элемента HTML с помощью jQuery

#javascript #html #jquery #css

#javascript #HTML #jquery #css

Вопрос:

У меня есть кнопка в html ниже, которая имеет класс ‘hapus’. Когда я выполнил

предупреждение($(this).ближайший(«li»).html());

Он выдает оповещение, подобное этому:

 JENIS AKTIVA: 
<button class="btn-link input-xs tambah" type="button" style="display: none;">
   <a>  tambah</a>
</button>
<div class="tingkat form-group form-inline"><br><button type="button" class="hapus form-group form-inline btn btn-sm btn-danger input-xs">X</button><select class="form-control form-control-sm input-xs turunan" style="width: 160px; margin-left: 2px;" required="" disabled=""><option disabled="" selected="" value="4">Infrastruktur dan Alat Non Medis</option></select> Ket: <input type="text" class="form-control form-control-sm input-xs" style="margin-left: 7px;" name="125" value=""></div>
  

Вопрос в том, как я могу проверить, содержит ли HTML-код «li», на который я нацелен, слово «JENIS AKTIVA»?

Комментарии:

1. проверьте innerHTML (в jquery говорят, что это .html() ) или textContent (jquery .text() ) для этой строки

2. Итак, как я пишу условие внутри if()? Если в нем содержится это упомянутое слово?

3. что if ? у вас нет if в коде … в строках есть такие методы, как indexOf или includes , которые помогут

4. Извините, что не включил его. Но я написал, как проверить, что, как я думал, это будет означать, что мне нужно предложение if. Я закончил использовать .include() спасибо за помощь.

5. если бы вы использовали .include() , то это не сработало бы — это .includes()

Ответ №1:

Использовать:

$(this).closest("li").text().includes('JENIS AKTIVA')

Который вернет true or false , который вы можете использовать в операторе if.

Комментарии:

1. Это работает. Я пробовал $(this).closest(li:contains()) но это селектор, он не возвращает логическое значение, которое можно оценить. Также я обнаружил, что .html().includes() тоже работает. Цените ответ, я приму ваш ответ как можно скорее.

2. метод contains предназначен для селектора, то, что делается выше, — это синтаксический анализ в виде текста и использование стандартного includes() для проверки того, что он включает строку. вы могли бы использовать .html(), но он содержит весь dom.

Ответ №2:

Попробуйте протестировать с помощью регулярного выражения.

  element = $(this).closest("li").html();
 myRegEx = /s JENIS AKTIVAs /i;
 console.log(myRegEx.test(element))
  

Это должно возвращать либо true, либо false.

Комментарии:

1. Я бы тоже поставил s между JENIS и AKTIVA — вы никогда не знаете , что создает отдельный пробел на веб — странице : p

2. Я еще не тестировал его, но, похоже, он имеет тот же желаемый результат, что и .include(). Я выбираю .include(), потому что это требует меньше усилий и может быть легко прочитано мной. Спасибо за ответ, хотя, ценю это.