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 回答