2011-05-31 53 views
8

如何檢查一個元素是否存在,如果它我希望insertAfter無效。如果該元素不存在,那麼我希望insertAfter是valib但只有一次。我的目標是隻發送一次insertAfter,如果一個元素不存在,並且它不發送任何東西Jquery insertAfter只有一次,如果元素存在

+1

在哪個元素之後插入元素以響應什麼事件?你有什麼嘗試,出了什麼問題? – 2011-05-31 06:17:15

回答

7

只要做一個長度檢查。假設你有一個選擇器#sel,並且你想在它後面插入一些東西。

var foo = 'something'; 
if ($('#sel').length) { 
    //do something if elem is present 
} else { 
    $('#sel').insertAfter(foo); 
} 
+1

太棒了! +1 – 2011-05-31 06:25:14

2

您可以通過檢查任何jQuery對象的length屬性來檢查元素是否存在。

1

廣場下面,修改你的需求,你所選擇的事件處理中後:

if (!$('elementID').length) { 
    $('<div id="elementID" />').insertAfter('elementSelector'); 
} 

例如:

$('elementSelector').once().click(
    function(){ 
     if (!$('elementID').length) { 
      $('<div id="elementID" />').insertAfter('elementSelector'); 
     } 
    }); 

參考文獻:

+0

我認爲你應該使用one()而不是once()。 – 2016-03-02 19:29:41

相關問題