这个javascript代码是否正确?

时间:2015-02-02 22:43:31

标签: javascript

我在点击具有特定类的元素时尝试删除一个类。我做了这个javascript,它确实有效。但是这样做的正确语法是否可以提高效率?

// Clear notifications alerts 
$(document).on('click', '.js-clear-notifications', function() {
  $('.AlertNotifications').remove();
});

// clear inbox alerts
$(document).on('click', '.js-clear-inbox', function() {
  $('.AlertInbox').remove();
});  

4 个答案:

答案 0 :(得分:0)

您的javascript代码是正确的,前提是您也加载了jQuery。

此外,您拥有最有效的解决方案,您可以使用单个事件处理程序来处理源自多个元素的事件。

替代方案是:

$('.js-clear-notifications').on('click', function() {
  $('.AlertNotifications').remove();
});

它附加了与jQuery对象中的元素一样多的事件处理程序。效率稍差,但在极端情况下你可能永远不会注意到。

答案 1 :(得分:-1)

对我来说,更合适的方法就是这样:

...
$('.js-clear-inbox').on('click', function() {
  $('.AlertInbox').remove();
});  
...

我还建议有更多特定的选择器,即

$('div .js-clear-inbox') 

我希望这会有所帮助。

答案 2 :(得分:-2)

我正在编辑此内容以回应评论中的反馈。

如果你想要的是删除所有使用AlertNotifications类的元素,这就是你的代码所做的,那么你拥有的是正确的。

如果您想要的只是删除该类,这就是帖子所说的内容,您需要removeClass,而不是删除:

    $('.js-clear-notifications').on('click',function() {
        $(this).removeClass('AlertNotificitions');
    }

答案 3 :(得分:-3)

新方法,如果您已经定义了变量,从DOM中删除它的正确方法是:

var elem = document.getElementById("myDiv");
elem.remove();

但如果你刚刚开始,那么.remove将是你最好的意见。