繁体   English   中英

jQuery更改选择文本

[英]jQuery changing select text

我尝试为selection.option.text选择的西里尔字母写函数。

function latin_to_cyrill(id5){
  var select = document.querySelector('#id5');
    var text =(select option:selected).text;
     var arrru = new Array ('Я','я','Ю','ю','Ч','ч','Ш','ш','Щ','щ','Ж','ж','А','а','Б','б','В','в','Г','г','Д','д','Е','е','Ё','ё','З','з','И','и','Й','й','К','к','Л','л','М','м','Н','н', 'О','о','П','п','Р','р','С','с','Т','т','У','у','Ф','ф','Х','х','Ц','ц','Ы','ы','Ь', 'ь','Э','э');
    var arren = new Array ('Ya','ya','Yu','yu','Ch','ch','Sh','sh','Sh','sh','Zh','zh','A','a','B','b','V','v','G','g','D','d','E','e','E','e','Z','z','I','i','J','j','K','k','L','l','M','m','N','n', 'O','o','P','p','R','r','S','s','T','t','U','u','F','f','H','h','C','c','Y','y','\'','\'','E', 'e');
    for(var i=0; i<arren.length; i++){
        var reg = new RegExp(arren[i], "g");
        text = text.replace(reg, arrru[i]);
                (select option:selected).text=text; 
    }
document.querySelector('#id5')=select;    
}

我在这里做错了什么?

尝试这个:

var ddl=document.getElementById('idofselect');
    ddl.options[ddl.selectedIndex].text = text;
    ddl.options[ddl.selectedIndex].value = "";

参见下面的工作解决方案,该解决方案也接收选择器作为参数。

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />
    <script>
        function latin_to_cyrill(selector){
            var select = document.querySelector(selector);
            var selIndex = select.selectedIndex;
            //Retrieve the text from the selected option
            var text = select.options[selIndex].text;
            var arrru = new Array ('Я','я','Ю','ю','Ч','ч','Ш','ш','Щ','щ','Ж','ж','А','а','Б','б','В','в','Г','г','Д','д','Е','е','Ё','ё','З','з','И','и','Й','й','К','к','Л','л','М','м','Н','н', 'О','о','П','п','Р','р','С','с','Т','т','У','у','Ф','ф','Х','х','Ц','ц','Ы','ы','Ь', 'ь','Э','э');
            var arren = new Array ('Ya','ya','Yu','yu','Ch','ch','Sh','sh','Sh','sh','Zh','zh','A','a','B','b','V','v','G','g','D','d','E','e','E','e','Z','z','I','i','J','j','K','k','L','l','M','m','N','n', 'O','o','P','p','R','r','S','s','T','t','U','u','F','f','H','h','C','c','Y','y','\'','\'','E', 'e');

            for(var i=0; i<arren.length; i++){
                var reg = new RegExp(arren[i], "g");
                text = text.replace(reg, arrru[i]);
            }
            //Put back the mofified text to the selected option
            select.options[selIndex].text = text;
        }
    </script>
</head>
<body>
    <select id="id5">
        <option value="1">First Text</option>
        <option value="2">Second Text</option>
    </select>
    <input type=button onclick="latin_to_cyrill('#id5')" value="Run">
</body>
</html>

您使用选择器的方式不正确:首先,我从未见过检索所选选项的语法:

var text =(选择选项:已选择).text;

其次您要分配给一个选择相同的选择:

document.querySelector('#id5')= select;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM