Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将值从HTMLCollection获取为字符串_Javascript_Html_Arrays_Htmlcollection - Fatal编程技术网

Javascript 将值从HTMLCollection获取为字符串

Javascript 将值从HTMLCollection获取为字符串,javascript,html,arrays,htmlcollection,Javascript,Html,Arrays,Htmlcollection,我试图获取多选下拉列表中的选定值,并将其转换为单个字符串,以供以后操作。目前,我有以下代码: 函数newComic() { var elem=document.querySelector(“genreList”)。选择选项; var arr=[].slice.call(elem); var-genres=arr.join(','); 窗口警报(类型); } 行动 喜剧片 幻想 恐怖 神秘的 非小说类 时期 浪漫 科幻小说 惊悚片 当您加入数组时,它调用每个元素的“toString”。在本

我试图获取多选下拉列表中的选定值,并将其转换为单个字符串,以供以后操作。目前,我有以下代码:

函数newComic() { var elem=document.querySelector(“genreList”)。选择选项; var arr=[].slice.call(elem); var-genres=arr.join(','); 窗口警报(类型); }

行动
喜剧片
幻想
恐怖
神秘的
非小说类
时期
浪漫
科幻小说
惊悚片


当您加入数组时,它调用每个元素的“toString”。在本例中,它们是DOM元素并返回其类型。您可以使用first创建一个新的字符串数组,其中包含每个选项的


您可以像这样迭代选定的项目:

<script type="text/javascript">
function newComic(){
    var elem = document.querySelector("#genreList").selectedOptions;
    var arr = [];
    for(var x=0; x<elem.length; x++){
        // for the TEXT value
        //arr.push(elem[x].text);

        // for the value
        arr.push(elem[x].value);
    }
    var genres = arr.join(', ');
    window.alert(genres);
}
</script>

函数newComic(){
var elem=document.querySelector(“genreList”)。选择选项;
var-arr=[];

对于(var x=0;x您需要像这样迭代HTMLCollection

<script>
    function newComic()
    {
       var elem = document.querySelector("#genreList").selectedOptions;
       console.log(elem);
       for (var i = 0; i < elem.length; i++) {
           console.log(elem[i].attributes[0].nodeValue); //second console output
       }
    }
</script>

函数newComic()
{
var elem=document.querySelector(“genreList”)。选择选项;
控制台日志(elem);
对于(变量i=0;i
我认为jquery最适合这个任务

HTML

看到小提琴了吗

完美!用最少的代码完全解决了我的问题。当然可以。看一下小提琴并确认一下。在小提琴上,我认为它们都是一个字符串,项目之间没有空格/分隔,所以很难/不可能区分“否”和“palitos”和“nopalitios”。不过我喜欢它的简单性;)是的,你是对的。那里没有可以分别显示两个单词的delimeter,但我没有编辑这篇文章。现在很好。请看一看。
<script>
    function newComic()
    {
       var elem = document.querySelector("#genreList").selectedOptions;
       console.log(elem);
       for (var i = 0; i < elem.length; i++) {
           console.log(elem[i].attributes[0].nodeValue); //second console output
       }
    }
</script>
<select id="genreList" multiple="multiple" name="addGenre[]"  style="width: 150px;font-size: 10pt;">
            <option value="Action">Action</option>
            <option value="Comedy">Comedy</option>
            <option value="Fantasy">Fantasy</option>
            <option value="Horror">Horror</option>
            <option value="Mystery">Mystery</option>
            <option value="Non-Fiction">Non-Fiction</option>
            <option value="Period">Period</option>
            <option value="Romance">Romance</option>
            <option value="Sci-Fi">Sci-Fi</option>
            <option value="Thriller">Thriller</option>
</select>

<p><input type="button" value="Add Comic" id="btnAddComic" style="font-size: 10pt; width: 150px; height:40px;"></p>
$("#btnAddComic").click(function(){
    var inz = $( "#genreList option:selected" ).map(function(){
        return $(this).text();
    }).get().join(',');
    alert(inz);
});