2013-09-24 56 views
1

我有以下功能將通過在我的ASP.NET ListBox該項目的所有一旦被點擊的迭代:確定某個ASP.NET ListBox的項目中選擇使用jQuery

$('#<%=MyListBox.ClientID %>').children("option").each(function() { 

} 

我不想要上面這個函數改變,因爲對於外部函數我需要循環通過全部項來處理一些邏輯。但是,在內部,我需要查看焦點的項目是否被選中,並且不能正確。我搜索了大量的帖子,可以使該功能只返回選定的項目,但我想要檢查是否檢查此功能中的當前項目。

我想:

if ($(this).selected()) 

...並拋出一個錯誤,說明object not supported。我也試過:

if ($(this).selected == true) 

...它說selected是不確定的,但是當我看着$(this)selectedfalse

如何在我的函數中檢查循環中的當前項是否爲selected

回答

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 
    } 
} 
0
if(this.selected) /* ... */ 

應該足夠了,如果沒有的話this並不是指你在想它做什麼。

If the option doesn't have a selected attribute, then you'll get undefined - 由於該屬性不存在。因此,this.selected將工作;如undefinedfalsey

注意 - 您收到了適用於您所描述的兩種場景的適當的錯誤消息。

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 */ 

http://jsfiddle.net/R6KA8/

相關問題