我有一个函数,我将一个元素附加到另一个元素:
$("#frmUrl").addClass("hideUrl").css("margin","0").append(' <span class="uico ui-icon-carat-1-w icoSpan"></span>');
自然,当我再次调用相同的函数时,会附加另一个。如何重写此字符串以仅将此跨度附加一个?
我有一个函数,我将一个元素附加到另一个元素:
$("#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>');
}
为其添加条件
if(! $('#frmUrl').find('span.uico').length > 1){
$("#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>');