2

現在、クリックイベントがあり、選択すると検索ボックスが.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); 
4

2 に答える 2

3

関数は次のとおりです。

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); 
于 2012-02-28T16:19:05.930 に答える
0

element.removeChild(y)を使用するだけです

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

これはjqueryですが、単純な古いjavascript、または使用しているフレームワークに変換するのは非常に簡単です。

于 2012-02-28T16:07:18.527 に答える