2012-10-03 43 views
0

我在我的元素追加到另一个元件的功能:追加一次与jQuery

$("#frmUrl").addClass("hideUrl").css("margin","0").append('&nbsp;<span class="uico ui-icon-carat-1-w icoSpan"></span>'); 

自然地,当我再次调用相同的功能,另一个附加。我怎样才能重写这个字符串来追加这个跨度只有一个?

回答

2

那么有3件事你可以做。

一是然后追加后创建一个标志检查

var isExist = false; 

$("#frmUrl").addClass("hideUrl").css("margin","0").append('&nbsp;<span class="uico ui-icon-carat-1-w icoSpan"></span>'); 

isExist = true; 

if(!isExist){ 
$("#frmUrl").addClass("hideUrl").css("margin","0").append('&nbsp;<span class="uico ui-icon-carat-1-w icoSpan"></span>'); 
} 

,第二个是要检查DOM已经存在于目标DOM

var dom = $("#frmUrl").html(); 

if(dom.indexOf('&nbsp;<span class="uico ui-icon-carat-1-w icoSpan\"></span>') == -1){ 
$("#frmUrl").addClass("hideUrl").css("margin","0").append('&nbsp;<span class="uico ui-icon-carat-1-w icoSpan"></span>'); 
} 

,第三个是通过检查目标元素是否存在于您的目标元素上,检查元素是否已存在

var dom = $("#frmUrl").find('.uico').length; 

if(dom == 0){ 
    $("#frmUrl").addClass("hideUrl").css("margin","0").append('&nbsp;<span class="uico ui-icon-carat-1-w icoSpan"></span>'); 
} 
0

您可以设置一个标志变量。最初将其设置为false,然后在执行附加操作之前,检查该值。如果为false,则继续追加并将其设置为true。否则,根据您的代码,您可以使用jQuery的.one()函数仅执行一次事件。

0
$("#frmUrl:not(:has(.icoSpan))").addClass("hideUrl").css("margin","0").append('&nbsp;<span class="uico ui-icon-carat-1-w icoSpan"></span>'); 
1

为其添加条件

if(! $('#frmUrl').find('span.uico').length > 1){ 
    $("#frmUrl").addClass("hideUrl").css("margin","0").append('&nbsp;<span class="uico ui-icon- 
    carat-1-w icoSpan"></span>'); 
}