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

基本的には、Certificate を Diploma に変更したいだけです。最初の関数では機能しますが、2 番目の関数では機能しません。属性セレクターで変数を連結するために複数の異なる引用符の組み合わせを試しましたが、役に立ちませんでした。考え?

編集:「これはまだ機能していません」部分の 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 に答える