2017-01-03 118 views
0

我一直在使用与ui.multiselect.js类似的HTML选择:selectedOptions.length在Internet Explorer中不起作用,但在Chrome和Firefox中正常工作?

我想要所选元素的长度。因此,我不得不用下面的代码:

var selectedOption = document.getElementById('animalList').selectedOptions.length; 

但似乎selectedOptions.length没有在IE工作,但在Chrome和Firefox

正常工作

以下是我已经尝试了备选方案:

var select = document.getElementById('animalList'); 
var len = select.options.length; 

我得到的结果为0.

$("#animalList :selected").length; 

我得到结果a小号0

+5

原来是ID “mySelect” 或 “animalList” 得长? – Utkanos

+2

显示您的HTML。 – Liam

+0

你可以用'[<>]'来为你的问题插入一个可运行的代码块吗? –

回答

1

要获得使用multiselect一个select元素的数量,确保您的代码如下所示:

$(document).ready(function() { 
 
    
 
    $('button').click(function() { 
 
    // jquery version 
 
    var count = $("#foo :selected").length; 
 
    console.log("jQuery Count: " + count); 
 
    
 
    // pure javascript version 
 
    var options = document.getElementById('foo').options, count = 0; 
 
    for (var i=0; i < options.length; i++) { 
 
     if (options[i].selected) count++; 
 
    } 
 
    console.log("Pure Javascript: " + count); 
 
    
 
    }); 
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button>Count Selected</button><br> 
 
<select multiple id="foo"> 
 
    <option value="volvo">Volvo</option> 
 
    <option value="saab">Saab</option> 
 
    <option value="opel">Opel</option> 
 
    <option value="audi">Audi</option> 
 
</select>

我既包括纯JavaScript版本和jQuery单击按钮时执行的版本。

0

您可以使用下面的方法

var len = 0; 
    if($("#animalList").val()!=null){ 
    len = $("#animalList").val().length; 
    } 

WORKING FIDDLE

相关问题