0

我有以下内容:

changeDegreeLabel: {
        "Certificate" : "Diploma"
}

this.changeDegreeLabel = function(labelReplacements)
{

这个有效

        $.each(labelReplacements, function(oldValue, newValue) {
            $('#programList dt:contains(' + oldValue + ')')
                .text(newValue);
        });

这个还不行

        $.each(labelReplacements, function(oldValue, newValue) {
            $("#program_id>optgroup[label="+oldValue+"]")
                .attr('label', newValue);
        });
 }

基本上,我只想将证书更改为文凭。它适用于第一个功能,但不适用于第二个功能。我尝试了多种不同的引号组合来连接属性选择器中的变量,但无济于事。想法?

编辑:这是“这个还不行”部分的 HTML

<select id="program_id" class="required" name="program_id">
<option value="" selected="selected">— Select —&lt;/option>
<optgroup label="Associate">
</optgroup>
<optgroup label="Certificate">
</optgroup>
4

1 回答 1

1

您需要在值周围添加引号,例如,您的字符串可能包含空格。您需要使用单引号或转义双引号:

$('#program_id>optgroup[label="'+ oldValue +'"]')
 -^-                          -^-          -^--^-

//OR

$("#program_id>optgroup[label=\""+ oldValue +"\"]")
                             -^-             -^-
于 2013-04-24T20:42:13.840 回答