Javascript 从多选输入中迭代选定值

Javascript 从多选输入中迭代选定值,javascript,jquery,Javascript,Jquery,我想从多个选择框中遍历所选的值,并根据字符串检查它们,一旦没有找到匹配项,就返回false。首先,我尝试: var exampleString = "example"; var mySelections = $("#mySelect option:selected"); for (selection in mySelections) { if (exampleString.indexOf(mySelections[selection].text()) === -1) {

我想从多个选择框中遍历所选的值,并根据字符串检查它们,一旦没有找到匹配项,就返回false。首先,我尝试:

var exampleString = "example";
var mySelections = $("#mySelect option:selected");
for (selection in mySelections) {
    if (exampleString.indexOf(mySelections[selection].text()) === -1) {
        return false; 
    };
};
但是,这段代码给了我一个错误:“文本不是函数”。我了解到这是因为使用索引会获取option对象本身,而不是用jQuery包装,而提供text()方法的是jQuery

我使用each函数尝试了另一个版本:

var result = $("#mySelect option:selected").each(function () {
    if (exampleString.indexOf($( this ).text()) === -1) {
        return false;
    }
});
然而,我不明白我得到的结果。我天真地假设我的变量结果将被设置为false或true,但它似乎只是。除了在函数中创建一个设置为true或false的全局变量外,还有什么方法可以访问这些字符串比较的结果

编辑后添加:根据要求,以下是相关的html:

<select multiple="" class="filterSelect" id="mySelect" style="display: none;">
    <option value="A">A</option>
    <option value="B">B</option>
    <option value="C">C</option>
</select>

A.
B
C
这就是我要做的(我不再是jQuery用户):

让testStr=“dd”;
document.getElementById('sel')。addEventListener('change',(e)=>{
常量值=[]

对于(让i=0;i将
mySelections[selection]
更改为
mySelections.eq(selection)
,并查看您的逻辑是否更改,因为
eq()
返回jQuery对象这在没有HTML的情况下是很难回答的。您能提供吗?您尝试过
$(this.val())
取而代之的是?谢谢你,@Taplar!这是一个多么简单的解决方案。我没有足够的声誉来接受甚至投票支持你的答案,但我很感激。@HolayMolay我已经更新了这篇文章,加入了相关的html,以防万一它能帮助其他人阅读。