Замена содержимого у данного элемента js

AG
На сайте с 13.10.2014
Offline
44
956

Доброго времени суток.

Подскажите что не так с этим this? Почему он не срабатывает.

Дивов с классом x на странице несколько. И изменения надо

применять именно для конкретного дива.

if ($('.x').text().match('Вася') ) {
$(this).html("Петя")
} else {
$(this).html("Рома")
}
ДП
На сайте с 23.11.2009
Offline
203
#1

Это откуда код? Просто вы сначала выбираете элемент некий и делаете проверку, а потом меняете содержимое у текущего элемента.

Либо вам надо проверять что-то типа $(this).text().match('Вася') или же

делать что-то типа $('.x').text().match('Вася').html('Петя')

И я, если честно, первый раз вижу $.match() - хотя может это плагин у вас какой-то.

Так-то есть селектор :contains() - http://api.jquery.com/contains-selector/

Z0
На сайте с 03.09.2009
Offline
758
#2

Может перебрать надо все элементы?


$('.x').each(function(){
if ($(this).text().match('Вася') ) {
$(this).html("Петя")
} else {
$(this).html("Рома")
}
});

И да, через contain проще вроде...

AG
На сайте с 13.10.2014
Offline
44
#3

ziliboba0213, да, оно. 🍻

tommy-gung
На сайте с 22.11.2006
Offline
287
#4
Дикий пионер:
И я, если честно, первый раз вижу $.match() - хотя может это плагин у вас какой-то.

это не jQuery-метод, нативный https://learn.javascript.ru/regexp-methods#str-match-reg-%D0%B1%D0%B5%D0%B7-%D1%84%D0%BB%D0%B0%D0%B3%D0%B0-g

Здесь не могла быть ваша реклама
ДП
На сайте с 23.11.2009
Offline
203
#5

А, ну логично, $.text() возвращает строку же, это её метод. Что-то сразу не признал, обычно там jquery объект же так по цепочке вызывается.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий