JQuery или JavaScript-эквивалент функции PHP strpos для поиска строки на странице
Есть ли эквивалентная функция в JavaScript или jQuery, подобная strpos
в PHP?
Я хочу найти строку внутри элемента на странице. Строка, которую я ищу, это:
td class="SeparateColumn"
Мне хотелось бы что-то, где я могу запустить его так:
if $("anystring")
then do it
Ответы
Ответ 1
Я предполагаю, что вы имеете в виду проверить, содержит ли строка символ, а также позицию в строке - вы хотите использовать метод indexOf()
для строки в JS. Вот соответствующие документы.
Хорошо, так что вам нужно искать всю страницу! Селектор :contains()
сделает это. См. jQuery docs для :contains
.
Для поиска каждого элемента на странице используйте
var has_string = $('*:contains("search text")');
Если вы возвращаете элементы jQuery, поиск был успешным. Например, на этой самой странице
var has_string=$('*:contains("Alex JL")').length
//has_string is 18
var has_string=$('*:contains("horsey rodeo")').length
//has_string if 0. So, you could an `if` on this and it would work as expected.
Ответ 2
Вам не нужен jquery для этого - простой старый Javascript будет отлично работать, используя метод .indexof()
.
Однако, если вам действительно нужно точное соответствие синтаксиса для PHP strpos(), что-то вроде этого:
function strpos (haystack, needle, offset) {
var i = (haystack+'').indexOf(needle, (offset || 0));
return i === -1 ? false : i;
}
Примечание. Эта функция взята здесь: http://phpjs.org/functions/strpos:545
JSFiddle