2014-01-08 83 views
0

我想在這裏做什麼我有1個選擇框和一個輸入。jQuery停止重複追加

選擇框有3個選項,其值爲1,2和3,輸入在ID爲INPUT的div中。

我在這裏想要的是當我選擇值爲3的選項來刪除整個div標籤與ID INPUT,然後當我再次點擊1或2的例子DIV標籤再次追加。但是當我點擊1或2時,div標籤會一再追加。

是否有機會檢查div標籤是否存在並且不附加。

這裏是我的jQuery:

$('select').change(function(){ 
      var val = $(this).val(); 
       if(val == '3'){ 
        $('#INPUT').remove(); 
        } 

       if(val !== '3'){ 
       $('.valuta').before('<div id="INPUT"><input type="text" class="price"></div>'); 

        } 
       }); 

任何幫助將不勝感激。 謝謝。

+0

我還沒有看到你的代碼和HTML,所以我不知道現在什麼是適當的,但我想我會聯繫你隱藏(),這也將工作 - HTTP://api.jquery。 com/hide/ – user1567453

+0

我想隱藏與幻燈片切換jQuery功能,但我需要刪除。謝謝你的建議 – user2317735

回答

2

檢查是否有INPUT添加一個新的

if (val != '3' && !$('#INPUT').length) { 
    $('.valuta').before('<div id="INPUT"><input type="text" class="price"></div>'); 
} 

演示之前已經存在的ID的元素:Fiddle


你也可以微調if條件,因爲如果該值不3那麼你想要有輸入字段,所以不需要第二個條件,只需在第一個條件中使用else

$('select').change(function() { 
    var val = $(this).val(); 
    if (val == '3') { 
     $('#INPUT').remove(); 
    } else if (!$('#INPUT').length) { 
     $('.valuta').before('<div id="INPUT"><input type="text" class="price"></div>'); 
    } 
}) 

演示:Fiddle

+0

謝謝你Aryn。這很好。我現在得到了這個長度。 – user2317735

+0

偉大的工作傢伙。 – user2317735

+2

@downvoter我錯過了什麼 –

3

是的,這是可能的。更改此:

if(val !== '3'){ 

這樣:

if(val != '3' && $("#INPUT").size() == 0){ 

通過這種方式,我們要求,如果已經有一個id = INPUT一個div,如果沒有,那麼我們就添加一個。

乾杯

+0

謝謝埃德加。這一個也適用。我是jQuery的新手。 – user2317735

+0

順便說一句,我們應該在這裏使用:if(val!='3'&&!$('#INPUT')。size()> 0)。 – user2317735

+1

[.size()](http://api.jquery.com/size/)已棄用 –