3

span選択ボックスにオプションが設定されていない場合に、ラベル付きの「オプション」をラベルに追加するこのjQuery関数があります。

function setLabel() {
    var label=$('label[for=person_address]');
    if ($('select#person_organisation_id').val().length != 0) {
      label.append(' <span>— optional</span>');     
    } else {
  label.children().remove();            
  } 
}

現在、これにより、新しいオプションを選択するたびに、ラベルに新しいスパンが追加されます。スパンがすでに存在するかどうかを確認し、スパンがまだ存在しない場合にのみスパンを追加するにはどうすればよいですか?

助けてくれてありがとう...

4

2 に答える 2

9

次のことを試してください。

label.not(":has(span)").append(" <span>— optional</span>");
于 2012-10-19T19:36:04.437 に答える
0

ラベルに複数のスパンがある場合は、次のコードを使用してください

function setLabel() {
    var label=$('label[for=person_address]');
    if ($('select#person_organisation_id').val().length != 0) {
        if(label.find(".optional").length == 0){
               label.append(' <span class="optional">— optional</span>'); 
        }    
    } else {
  label.children().remove();            
  } 
}
于 2012-10-19T19:38:19.430 に答える