我在我的元素追加到另一个元件的功能:追加一次与jQuery
$("#frmUrl").addClass("hideUrl").css("margin","0").append(' <span class="uico ui-icon-carat-1-w icoSpan"></span>');
自然地,当我再次调用相同的功能,另一个附加。我怎样才能重写这个字符串来追加这个跨度只有一个?
我在我的元素追加到另一个元件的功能:追加一次与jQuery
$("#frmUrl").addClass("hideUrl").css("margin","0").append(' <span class="uico ui-icon-carat-1-w icoSpan"></span>');
自然地,当我再次调用相同的功能,另一个附加。我怎样才能重写这个字符串来追加这个跨度只有一个?
那么有3件事你可以做。
一是然后追加后创建一个标志检查
var isExist = false;
$("#frmUrl").addClass("hideUrl").css("margin","0").append(' <span class="uico ui-icon-carat-1-w icoSpan"></span>');
isExist = true;
if(!isExist){
$("#frmUrl").addClass("hideUrl").css("margin","0").append(' <span class="uico ui-icon-carat-1-w icoSpan"></span>');
}
,第二个是要检查DOM已经存在于目标DOM
var dom = $("#frmUrl").html();
if(dom.indexOf(' <span class="uico ui-icon-carat-1-w icoSpan\"></span>') == -1){
$("#frmUrl").addClass("hideUrl").css("margin","0").append(' <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(' <span class="uico ui-icon-carat-1-w icoSpan"></span>');
}
您可以设置一个标志变量。最初将其设置为false,然后在执行附加操作之前,检查该值。如果为false,则继续追加并将其设置为true。否则,根据您的代码,您可以使用jQuery的.one()
函数仅执行一次事件。
$("#frmUrl:not(:has(.icoSpan))").addClass("hideUrl").css("margin","0").append(' <span class="uico ui-icon-carat-1-w icoSpan"></span>');
为其添加条件
if(! $('#frmUrl').find('span.uico').length > 1){
$("#frmUrl").addClass("hideUrl").css("margin","0").append(' <span class="uico ui-icon-
carat-1-w icoSpan"></span>');
}