<select name="List" id="List"> <option value="">-Select-</option> <option value="">--Product--</option> <option value="">product1</option> <option value="">product2</option> <option value="">product3</option> <option value="">--Software--</option> <option value="">software1</option> <option value="">software2</option> <option value="">software3</option> <option value="">--Services--</option> <option value="">service1</option> <option value="">service2</option> <option value="">service3</option></select>我的HTML选择字段中有上面的列表。我希望仅获取值--Product-,-Software-,-Services--因此,我创建了一个循环以抛出产品列表,并使用startwith方法拾取以“-”开头的值。function loadFilter() { var x = document.getElementById('List'); var i; var n; for (i = 0; i < x.length; i++) { str = x[i].text var n = str.startsWith('--'); flag = true; if (n == true) { alert(x[i].text); // list --Product--, --Software--, --Services-- alert(x[3].text); // prints from the LIST <product1> and not <--Services--> } }}因此,当标志为true时,alert(x[i].text);会正确列出值(--Product-,-Software-,-Services--)。但是,当我尝试通过它们的值(索引)来获取它们时,例如EG ..我只需要获取(--Services--),所以我使用x[3].text),但这将返回整个List值>>,而不是。 最佳答案 干得好:function loadFilter() { var element = document.getElementById('List'); var children = element.children; var filtered = []; for (var i = 0; i < children.length; i++) { if (children[i].textContent.startsWith('--')) { filtered.push(children[i].textContent); } } return filtered;}回顾一下函数的功能:获取元素“列表”获取“列表”的子级创建一个数组来保存通过过滤器的元素遍历每个元素并添加与指定正则表达式匹配的元素返回通过过滤器的元素关于javascript - Javascript从数组列表中获取特定值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46576351/
10-16 13:44