要素を別の要素に追加する関数があります。
$("#frmUrl").addClass("hideUrl").css("margin","0").append(' <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>');
当然、同じ関数を再度呼び出すと、別の関数が追加されます。この文字列を書き換えて、このスパンを 1 つだけ追加するにはどうすればよいですか?
それに条件を追加する
if(! $('#frmUrl').find('span.uico').length > 1){
$("#frmUrl").addClass("hideUrl").css("margin","0").append(' <span class="uico ui-icon-
carat-1-w icoSpan"></span>');
}
さて、あなたができることは3つあります。
1つは、追加後にフラグを作成してからチェックすることです
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>');
}
2つ目は、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>');
}
そして3つ目は、ターゲット上の要素の存在を確認することにより、要素がターゲット要素に既に存在するかどうかを確認することです
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()
関数を使用してイベントを 1 回だけ実行できます。
$("#frmUrl:not(:has(.icoSpan))").addClass("hideUrl").css("margin","0").append(' <span class="uico ui-icon-carat-1-w icoSpan"></span>');