Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript/closure删除附加元素?_Javascript_Google Closure_Google Closure Library - Fatal编程技术网

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

使用javascript/closure删除附加元素?,javascript,google-closure,google-closure-library,Javascript,Google Closure,Google Closure Library,我现在有一个点击事件,当被选中时,会在.header中添加一个搜索框,这是通过google闭包完成的。我现在的问题是,如果单击“关闭”按钮,我想删除这个附加元素。我知道使用jQuery只需要.remove(),但我不确定如何在闭包或js中实现这一点。有人能告诉我怎么做吗 当前代码: if(goog.dom.getElementsByClass('pe')){ var searchCtn = goog.dom.getElementsByClass('search'); v

我现在有一个点击事件,当被选中时,会在.header中添加一个搜索框,这是通过google闭包完成的。我现在的问题是,如果单击“关闭”按钮,我想删除这个附加元素。我知道使用jQuery只需要.remove(),但我不确定如何在闭包或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); 
只用

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

功能如下:

goog.dom.removeNode = function(node) {
  return node && node.parentNode ? node.parentNode.removeChild(node) : null;
};
因此,代码如下所示(假设搜索框是关闭按钮的父项):


感谢您的回复,this.parentNode以关闭按钮的父节点为目标,对吗?如果追加的元素不是close buttons父元素,我该如何定位它?@styler所以只要
goog.dom.removeNode(searchCtn)
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);