gpt4 book ai didi

javascript - each() on select 不迭代

转载 作者:行者123 更新时间:2023-11-30 07:47:30 24 4
gpt4 key购买 nike

出于某种原因,当我在下面发出警告时,我只进入第一个选项,然后它就存在我的整个功能。它从不遍历每个选项:

    function SelectAlbumOption(iAlbumID, iAlbumDropdownID)
{
var dropdownID = '#' + iAlbumDropdownID;

$(dropdownID).each(function(index, currentOption)
{
alert("(currentOption).attr('value'): " + $(currentOption).attr("value"));
if($(currentOption).attr("value") == iAlbumID)
{
alert("matched option");
$(currentOption).attr("selected", "yes");
return false;
}
});
}

就在调用上面的这个函数之前,我向那个选择添加了选项,所以它们在这个函数被调用之前就存在了。

最佳答案

要获得选项,您需要遍历它们,而不是 <select>本身,像这样:

var dropdownID = '#' + iAlbumDropdownID + ' option';

目前它正在遍历 <select> 的集合元素(仅其中之一)并为您提供它的值(value)。如果你想要 <option>您的选择器需要深入到那些。

你还应该设置 selectedtrue"selected"而不是 "yes" (尽管它在幕后被转换为 true)。另一张纸条,这个:$(currentOption).attr("value")可以是this.value ,无需将其包装在 jQuery 对象中即可获取该属性。


顺便说一句,您似乎基本上重新创建了 .val() function ,你有什么理由不这样做吗?:

$('#' + iAlbumDropdownID).val(iAlbumID);

它应该与您当前正在执行的操作具有相同的效果,但没有警报(假设那些用于调试)。

关于javascript - each() on select 不迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3389279/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com