使用javascript / closure删除附加元素?

时间:2012-02-28 15:59:02

标签: javascript google-closure google-closure-library

我目前有一个点击事件,当选中将搜索框附加到.header时,这是使用谷歌关闭完成的。我现在的问题是,如果我单击关闭按钮,我想删除此附加元素。我知道使用jQuery只需要.remove()但我不确定如何在闭包或vanilla js中实现这一点。任何人都可以建议我如何做到这一点?

当前代码:

if(goog.dom.getElementsByClass('pe')){
    var searchCtn = goog.dom.getElementsByClass('search');     
    var headerWrapper = goog.dom.getElementByClass('header');     
    goog.dom.append(headerWrapper,searchCtn); 
} 

var closeButton = goog.dom.getElement('close');
    goog.events.listen(closeButton, goog.events.EventType.CLICK, function() {
    console.log('Remove appended');
}, false, this); 

2 个答案:

答案 0 :(得分:2)

功能如下:

goog.dom.removeNode = function(node) {
  return node && node.parentNode ? node.parentNode.removeChild(node) : null;
};

所以代码如下(假设搜索框是关闭按钮的父代):

goog.events.listen(closeButton, goog.events.EventType.CLICK, function() {
    goog.dom.removeNode(this.parentNode);
}, false, this); 

答案 1 :(得分:0)

只需使用element.removeChild(y)

即可
$(function() {
  $('span').click(function() {    
    this.parentNode.removeChild(this);
  });
});

这是jquery,但很容易转换为普通的旧javascript,或者你所处的框架。