0

フォントのドロップダウン選択要素があります:

<select id="font">
                <option selected value="Font"></option> 
                <option selected=”selected” value="Arial">Arial</option>
                <option value="Calibri">Calibri</option>
                <option value="Century">Century</option>
                <option value="'Comic Sans MS'">Comic</option>
                <option value="'Courier New, Courier, mono'">Courier New</option>
                <option value="'Geneva, sans-serif'">Geneva</option>
 </select> 

以下の cellContent$ 要素の css font-family を読み取り、選択でそのオプションを選択したいと思います。

var fontFamily = cellContent$.css('font-family');
$('#font').val(fontFamily);

上記のコードは、fontFamily が「Courier New, Courier, mono」として返され、val パラメーターがオプションの内容と正確に一致する必要があるため、機能しません。たとえば、次のコードは機能します。

$('#font').val("'Courier New, Courier, mono'");

では、css('font-family') によって返されたものを、オプションの内容、つまり二重引用符 + 一重引用符 + 文字列 + 一重引用符 + ダブル引用符に正確に変換するにはどうすればよいでしょうか?

ありがとう

4

4 に答える 4

0

HTML のオプション値から一重引用符を削除しようとしましたが、.css('font-family') によって返される値と一致しませんでした。これは、オプション文字列の代替フォント間に余分なスペースがあったためであることが判明しました。しかし、これらをオプション値から取り出しても、常に一致するとは限りませんでした。マッチ。常に一致するようにするには、.css('font-family') によって返された文字列をコピーして、HTML オプションの値に貼り付ける必要がありました。

すべての提案をありがとう。

于 2013-10-21T17:50:47.330 に答える
0

これは、あなたの望むことですか?

var fontFamily = "'" + cellContent$.css('font-family') + "'";
$('#font').val(fontFamily);

編集:

次のようなアプローチが必要です。

var optionArray = $("#font>option").map(function() { return $(this).val(); });

var fontFamily = cellContent$.css('font-family');

for(var i=0;i<optionArray.length; i++){
    if(optionArray[i].indexOf(fontFamily)>0){
        $('#font').val(optionArray[i]);
    }
}

ここでフィドル: http://jsfiddle.net/eSwj2/1/

于 2013-10-21T10:15:23.980 に答える
0

リストの値からすべての一重引用符を取り除きますSELECT

于 2013-10-21T10:15:30.807 に答える
0

1 つの方法は、引用符を連結することです。

var fontFamily = "'" + cellContent$.css('font-family') + "'";
fontFamily = fontFamily.replace(/''/g, "'");
$('#font').val(fontFamily);

更新:不確定な引用符があることを知った後、最初にすべてのオプションを引用符から取り除き、次に値を適用することができます:

$('#font').children("option").each(function() {
    $(this).attr("value", $(this).attr("value").replace(/'/g, ""));
});


var fontFamily = cellContent$.css('font-family');
fontFamily = fontFamily.replace(/'/g, "");
$('#font').val(fontFamily);

このフィドルを参照してください: http://jsfiddle.net/YJ2Ns/

于 2013-10-21T10:15:32.370 に答える