JQuery: contains() работает в Firefox, но не Chrome/Safari
У меня есть функция ajax, которая получает некоторые значения на основе выбранного значения в раскрывающемся списке. Я пытаюсь включить/отключить некоторые поля на основе подстроки. Я нашел "contains" для работы в firefox, но тестирование в chrome и safari говорит мне, что объект "не имеет метода содержит"
if ($d.attr("embed").contains('$var_2$')) {
//do something
} else {
// do something else
}
Есть ли альтернатива, которая будет работать во всех браузерах?
Ответы
Ответ 1
то, что вы используете, String.contains
, а не jQuery.contains
. это потому, что вы используете функцию на .attr
return-value, которая является строкой, а не jQuery-Object.
использовать jQuery.contains()
(который работает в кросс-браузере), вы можете сделать это вместо этого:
$d.contains('$var_2$')
но обратите внимание, что это не только поиск по указанному атрибуту, но и по всему элементу.
поэтому вы, скорее всего, захотите использовать String.indexOf()
(который также работает в кросс-браузере):
$d.attr("embed").indexOf('$var_2$') != -1
Ответ 2
Вы можете использовать indexOf
, он должен работать во всех браузерах.
if ($d.attr("embed").indexOf('$var_2$') > -1) {
//do something
} else {
// do something else
}
Ответ 3
Вы можете использовать indexOf, а не содержать.