jQuery没有addClass到HTML元素

时间:2016-05-26 08:00:28

标签: jquery twitter-bootstrap

当尝试addClass('hidden')$(this)时,它似乎将它添加到jQuery对象[textarea.form-control.hidden, prevObject: n.fn.init[1], context: button.btn.btn-info.btn-flat.hidden, selector: "textarea"],而不是实际的HTML元素。我错过了什么?

jsfiddle

1 个答案:

答案 0 :(得分:0)

这是因为你已经在main div'.item'上调用了函数所以当你点击按钮时,'.item'上面的函数会再次调用,因为按钮是.item的孩子。

使用e.stopPropagation();停止从父div调用函数。

$('.item button').click(function(e) {
    e.stopPropagation();
    $parent = $(this).parent().parent();
    $parent.find('span').removeClass('hidden');
    $parent.find('textarea').addClass('hidden');
    $parent.find('button').addClass('hidden');

    console.log($parent.find('textarea'));
  })

小提琴:https://jsfiddle.net/34sdrrnf/1/