если содержит определенный текст, запустите jquery
Мне нужно запустить jquery, только если полужирный элемент содержит определенный текст. Что я делаю не так?
<script>
if ($('b:contains('Choose a sub category:')')) {
$("td.colors_backgroundneutral").css("background-color","transparent");
$("td.colors_backgroundneutral").children(':first-child').attr("cellpadding","0");
};
</script>
3 ответов
Помимо использования одинарных кавычек внутри одинарных кавычек, которые разрывают строку, вы используете селектор jQuery внутри оператора if. этот селектор только фильтры b
теги для тех, которые содержат "выберите подкатегорию"; а затем возвращает список этих элементов. Он не возвращает логическое значение. используйте .contains()
метод, например, так:
if($("b").contains("Choose a sub category")) {
// do stuff
}
вы можете подробнее здесь
EDIT: С the .contains()
метод кажется устаревшим, вот чистое решение JS:
var el = document.getElementById("yourTagId") // or something like document.getElementsByTagName("b")[0] if you don't want to add an ID.
if (el.innerHTML.indexOf("Choose a sub category") !== -1) {
// do stuff
}
Я всегда использовал это, чтобы определить, существует ли элемент:
if ($('b:contains("Choose a sub category:")').length > 0) { /*do things*/}