我有以下功能,点击后会迭代我的ASP.NET ListBox
中所有项目
$('#<%=MyListBox.ClientID %>').children("option").each(function () {
}
我不希望上面的这个函数改变,因为对于外部函数,我需要遍历所有项来处理一些逻辑。但是在内部我需要查看是否选择了焦点项目并且无法使其正确。我搜索了大量的帖子,这些帖子可以让函数只返回选中的项目,但我想检查是否检查了此函数中的当前项目。
我试过了:
if ($(this).selected())
...并且引发了object not supported
的错误。我也尝试过:
if ($(this).selected == true)
...它说selected
未定义,但当我查看$(this)
selected
的值为false
时。
如何检查我的函数以查看循环中的当前项是selected
?
答案 0 :(得分:0)
if(this.selected) /* ... */
如果不够,那么this
就没有提及你的想法。
If the option
doesn't have a selected
attribute, then you'll get undefined
- 因为该属性不存在。因此,this.selected
将起作用;因为undefined
falsey 。
注意 - 您收到了针对您所描述的两种情况的相应错误消息。
if ($(this).selected()) /* there is no method `selected` for this
jQuery object */
if($(this).selected == true) /* selected will be undefined for option's that
don't have a selected attribute */
答案 1 :(得分:0)
我在如何确定是否选择了option
值时想到了这一点。我使用了prop()
method from jQuery,如下所示:
$('#<%=MyListBox.ClientID %>').children("option").each(function () {
if ($(this).prop('selected'))
{
//Do work here for only elements that are selected
}
}