2016-04-26 2 views
-6

Итак,Javascript, чтобы проверить, имеет ли div ребенка с этим классом

Как проверить с помощью JavaScript, если у DIV есть это имя класса? Вот пример HTML <div class="cart"></div>, который был бы родителем, а затем JavaScript создается под этим div на клик, но если он уже существует и вы нажимаете на элемент, он просто удалит его. Пример: кнопка желтая, и если вы нажмете ее, добавьте элемент в корзину и измените класс кнопки на выбранный. Если вы нажмете его снова, он удалит выбранный класс, а также удалит элемент из корзины. У меня есть код для щелчка и добавление его в корзину, но не для его удаления .. Как я могу это сделать?

JavaScript

$(".item-card").mousedown(function() { 
     $(this).toggleClass("selected-item"); 
     var itemnume = $(this).find("img").attr("title"); 
     $("#itemcart").append($("<div id="+itemnume+">"+itemnume+"</div>")); 
    }); 

Здесь он добавляет элемент в корзину, но если бы вы reclick его, он будет делать это снова. Я пробовал написать функцию, которая проверяет, что это элемент уже в корзине, если он затем удаляет его, если не добавить его, но я никогда не добьюсь успеха. Я думаю, что это решило бы мою проблему.

+2

Ожидается, что вы по крайней мере попытаться закодировать это для себя. Stack Overflow не является службой записи кода. Я бы предположил, что вы проводите дополнительные исследования, либо через Google, либо путем поиска SO, сделайте попытку и. если у вас все еще есть проблемы, вернитесь ** с кодом ** и объясните, что вы пробовали, и почему это не сработало. –

+0

Я отредактирую свое первое сообщение :) –

+0

Возможный дубликат [Определить, имеет ли элемент CSS-класс с jQuery] (http://stackoverflow.com/questions/263232/determine-if-an-element-has-a- css-class-with-jquery) – JJJ

ответ

1

попробуйте следующее:

$(".item-card").click(function() { 
    var itemnume = $(this).find("img").attr("title"); 
    var replaced = itemnume.split(' ').join('_'); 

    if ($(this).hasClass('selected-item')) { 
    console.log() 
    $("#" + replaced).remove(); 
    } else { 
    $("#itemcart").append($("<div id=" + replaced + ">" + itemnume + "</div>")); 
    } 
    $(this).toggleClass("selected-item"); 
}); 

https://jsfiddle.net/0tusd19b/

+0

Спасибо! К сожалению, это не сработало. :(Он не хочет удалять div id, вызываемый этим именем. Вот как это выглядит после того, как он создал его '

The Best Ball
' –

+0

он работает, у вас есть недопустимые идентификаторы, поэтому не работает для вас – madalinivascu

+0

Если я нажму на него, Если вы не хотите, чтобы этот элемент был добавлен, то он не будет добавлять элемент сразу же, если я снова нажму, а затем добавит его. –

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