jquery change == содержит? - PullRequest
       4

jquery change == содержит?

1 голос
/ 13 февраля 2010

Я пытаюсь изменить приведенный ниже код так, чтобы, если «this» содержал класс «search_init», он заменял только этот класс, поскольку к самой разметке применено несколько классов. Я попытался ~ = и ^ =, но это дает мне ошибки об отсутствии ().

$("tfoot input").focus( function () {
            if ( this.className == "search_init" )  {
                this.className = "";
                this.value = "";
            }
        } );

Ответы [ 3 ]

5 голосов
/ 13 февраля 2010

Попробуйте это:

$("tfoot input").focus( function () {
    var $this = $(this);
    if ( $this.hasClass("search_init") )  {
        $this.removeClass("search_int").val('');
    }
});
1 голос
/ 14 февраля 2010

Должен быть один лайнер:

$('tfoo input.search_init').focus(function(e) {$(this).removeClass('search_init').val('');});

Кроме того, вы можете изменить стиль с мета-классом .search_init:focus css.

1 голос
/ 13 февраля 2010
$("tfoot input.search_init").focus( function () {
                $(this).removeClass("search_init");
                this.value = "";
            }
        } );

~ = "Выбирает элементы, которые имеют указанный атрибут со значением, содержащим данное слово, разделенные пробелами." Это бы сработало, но гораздо разумнее использовать встроенные селекторы классов, чем связываться с самим атрибутом класса. Аналогично с ^ =, который "Выбирает элементы, которые имеют указанный атрибут со значением, начинающимся точно с данной строки."

...