2017-01-23 9 views
0

Я пытаюсь удалить классы div1 и intro из этого HTML-кода.Попытка удалитьClass в jquery не удалась

Отрывок образец:

$(function() { 
 
    $('div').on('click', function() { 
 
    alert("Hello"); 
 
    $("div").removeClass("div1"); 
 
    $("p").removeClass("intro"); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="div1">div 1</div> 
 
<div class="div2">div 2</div> 
 
<div class="div3">div 3</div> 
 
<div class="div4">div 4</div> 
 
<p class="intro">This is a paragraph.</p> 
 
<p class="intro">This is another paragraph.</p>

Теперь, когда я нажимаю на DIV я получаю привет оповещения, но div1 и интро классы не удаляются. Какие-нибудь предложения о том, что мне здесь не хватает?

Обновление: Я должен был использовать remove вместо removeClass. Fiddle sample.

+3

Класс 'intro' удален просто в этом [скрипке] (https://jsfiddle.net/q251jss3/1/). Класс 'div1' не будет удален, поскольку вы нацеливаете элементы' p', ни один из которых не имеет класса 'div1'. – mcon

+0

Извините, я попробовал удалить его. Вот обновленный код –

+0

Вы пытаетесь удалить элемент с дисплея? 'removeClass()' не делает этого. Вам просто нужно 'remove()'. – mcon

ответ

1

Похоже, что проблема заключалась в недоразумении между remove и removeClass. OP хотел, чтобы удалить элемент из DOM, и, следовательно, должны использовать remove(), вместо того, желая, чтобы удалить класс, используя removeClass()

jsfiddle

+0

только что обновил мое сообщение Извините, я использовал неправильный код –

+0

Не могли бы вы объяснить вашу проблему немного больше? В jsfiddle как класс intro, так и класс div1 удаляются, если вы нажмете div. Чего вы пытаетесь достичь? Возможно, я неправильно понимаю вашу проблему. – Hodrobond

+0

Не удаляется в моем окне –

-1

Вы выбираете p элемент и пытается удалить div1 и div2 классы, на div-х:

$(function() { 
 
    $('div').on('click', function() { 
 
    
 
    $("div").removeClass(function (index, className) { 
 
     return (className.match (/div[0-9]/g) || []).join(' '); 
 
    }); 
 
    $("p").removeClass("intro"); 
 
    }); 
 
});
.div1, .div2, .div3, .div4 { 
 
    border: 1px solid red; 
 
    } 
 

 
.intro { 
 
    color: blue; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="div1">div 1</div> 
 
<div class="div2">div 2</div> 
 
<div class="div3">div 3</div> 
 
<div class="div4">div 4</div> 
 
<p class="intro">This is a paragraph.</p> 
 
<p class="intro">This is another paragraph.</p>

+0

только что обновил мое сообщение извините, я использовал неправильный код –

+0

Ваш код и скрипка не совпадают, я чего-то не хватает? – Yaser

0

Если вы хотите, чтобы удалить элементы из DOM, запустите скрипт так:

$('div').on('click',function(){ 
 
    alert("Hello"); 
 
    $(".div1").remove(); 
 
    $(".intro").remove(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="div1">div 1</div> 
 
<div class="div2">div 2</div> 
 
<div class="div3">div 3</div> 
 
<div class="div4">div 4</div> 
 
<p class="intro">This is a paragraph.</p> 
 
<p class="intro">This is another paragraph.</p>

removeClass('intro1') удалит свойство intro класса от объекта. remove() - это функция, которая удалит ее из самой DOM.

+0

Да что работает, но мой вопрос - почему мой код не работает? Я делаю что-то неправильно ? –

+0

спасибо за помощь с функцией удаления в jquery, которая помогла. Похоже, я использовал removeClass, который является неправильным и должен использовать remove –

 Смежные вопросы

  • Нет связанных вопросов^_^