我想弄清楚如何从选项列表中选择多个项目。目前,我有一个jQuery我用来选择包含一定数量的项目。例如,如果您查看下面的屏幕截图,我只选择了数字'03'的选项。
我用来做这个的脚本是:
$('#formfields option[title*="(##)"]').attr('selected', 'selected');
HTML SELECT和OPTION如下所示:
<select id="formfields" name="formfields" divclass="" optionsonly="false" size="10" fromselect="false" class="mcdropDown"
title="Form Fields" multiple="" required="" aria-required="true">
<option value="2O5W6XNX5ZCSDLW6GK" title="Completion Documentation - mastercontrol.links.Completion (01)">Completion Documentation - mastercontrol.links.Completion (01)</option>
显然,有更多的选择。
现在,我有一个类似的列表,但HTML SELECTS和OPTIONS有点不同。这是我正在尝试使用的列表的屏幕截图。
我希望能够做到与上面类似的事情。其中一些列表中有数百个选项,我只需要将某些项目移动到“当前选中”窗口。例如,我可以编写一个jQuery或JS来只选择那些说明InfoCard Employee,InfoCard文件名,InfoCard所有者等的项目吗?
问题是HTML SELECTS和OPTIONS在元素的可访问性方面并不是非常慷慨。
这是我目前必须处理的HTML。
<select name="parentList" size="8" multiple="" style="height:200px;font-size:11px;" ondblclick="MoveAcross(document.OrderForm['parentList'],document.OrderForm['updownlist']);">
<option value="O.247"> InfoCard Dataset- InfoCard Author</option>
答案 0 :(得分:3)
您可以使用:contains
选择器搜索其文字包含特定文字的元素。
$("#leftSelect option:contains(InfoCard Employee)").prop('selected', true);
答案 1 :(得分:0)
这是一个可用于选择包含字符串的所有项目的函数。
小提琴:https://jsfiddle.net/TimothyKanski/8toya4h1/
function selectOptionsByNameContains(elementId, str){
var ele = document.getElementById(elementId);
var n = ele.options.length;
for(var i = 0; i < n; i++){
var text = ele.options[i].innerHTML
console.log({text:text,str:str});
if(text.includes(str)){
$("#" + elementId).children().eq(i).attr('selected', true);
}
}
}