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 字体系列,并在选择中选择该选项:

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-value') 字符串放在彼此之上时,它们看起来与选项值相同,但没有匹配。为了始终获得匹配,我必须复制 .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

一种方法是连接引号:

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