JQuery hasClass дает неверный результат - PullRequest
1 голос
/ 07 марта 2011

Ранее я использовал метод hasClass, но у меня есть сценарий, в котором отчеты не представлены, хотя если я выведу элементы .html (), это ясно покажет, что класс используется item , а также другие классы.

Элемент, которому принадлежит класс, тоже был динамически записан на экран. Есть идеи, что я делаю не так?

$('.myList').each(function (index, item) {

    // Check marked as complete
    if (!$(item).hasClass('complete')) {
        // Not complete
        alert('not complete!' + $(item).html());

        completeFlag = false;
        return false;
    }

});

Вывод html:

<li id="myid" class="class1 class2 complete">some text</li>

Ответы [ 3 ]

3 голосов
/ 07 марта 2011

Я предполагаю, что вы проверяете список , где вы хотите проверить список items .

Пример того, что вы считаетеделать:

HTML:

<ul class="myList">
  <li>This is not complete</li>
  <li>Nor this</li>
  <li class="class1 class2 complete">But this is</li>
  <li>And this isn't</li>
</ul>

JavaScript:

$('.myList').each(function (index, item) {

    // Check marked as complete
    if (!$(item).hasClass('complete')) {
        // Not complete
        display('Item not complete: ' + $(item).html());
    }
    else {
        // Is complete
        display('Item IS complete: ' + $(item).html());
    }

});

Живая копия (что не работает)

Вот как вы можете проверить элементы : изменить

$('.myList').each(function (index, item) {

на:

$('.myList li').each(function (index, item) {
//         ^--- Note that we're now looping the
// list *items*, not the list

Живая копия

2 голосов
/ 07 марта 2011

.hasClass() проверяет определенный элемент, который соответствует вашему селектору. Вы, кажется, думаете, что он ищет внутри элемента, чтобы увидеть, используется ли там класс. Это не то, как это работает.

1 голос
/ 07 марта 2011

Является ли, что один из дочерних элементов в вашем html имеет класс, а сам фактический элемент - нет? Я полагаю, что .hasClass() определяет только, применен ли к самому элементу класс css.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...