jQuery连接或选择器问题

时间:2013-04-24 20:39:56

标签: javascript jquery attributes

我有以下内容:

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 —</option>
<optgroup label="Associate">
</optgroup>
<optgroup label="Certificate">
</optgroup>

1 个答案:

答案 0 :(得分:1)

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

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

//OR

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