2014-01-08 184 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/)已弃用 –