0

要素を別の要素に追加する関数があります。

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

当然、同じ関数を再度呼び出すと、別の関数が追加されます。この文字列を書き換えて、このスパンを 1 つだけ追加するにはどうすればよいですか?

4

4 に答える 4

2

それに条件を追加する

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>');
}
于 2012-10-03T03:55:21.080 に答える
2

さて、あなたができることは3つあります。

1つは、追加後にフラグを作成してからチェックすることです

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>');
}

2つ目は、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>');
}

そして3つ目は、ターゲット上の要素の存在を確認することにより、要素がターゲット要素に既に存在するかどうかを確認することです

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>');
}
于 2012-10-03T03:50:04.087 に答える
0

フラグ変数を設定できます。最初に false に設定し、追加を実行する前に値を確認します。false の場合は、追加を続行して true に設定します。それ以外の場合は、コードによっては、jQuery の.one()関数を使用してイベントを 1 回だけ実行できます。

于 2012-10-03T03:48:24.053 に答える
0
$("#frmUrl:not(:has(.icoSpan))").addClass("hideUrl").css("margin","0").append('&nbsp;<span class="uico ui-icon-carat-1-w icoSpan"></span>');
于 2012-10-03T03:53:26.147 に答える