2013-05-06 40 views
0

我有在我的左邊網頁上的類別列表,並與右側項的列表。具有項目的列表具有名爲cat的屬性,並且值是數字。的jQuery:查找第一個元素的屬性

點擊該類別應滾動我的第一個項目具有相同類別ID。

任何提示? :)

下面是HTML:

asp:Repeater runat="server" ID="repCategory" OnItemDataBound="CategoryItemRepeater"> 
      <HeaderTemplate> 
       <ul class="menuListUl"> 
      </HeaderTemplate> 
      <ItemTemplate> 
       <li> 
        <div id="catItem" runat="server"></div> 
       </li> 
      </ItemTemplate> 
      <FooterTemplate></ul></FooterTemplate> 
     </asp:Repeater> 


<div id="menuList"> 
      <asp:Repeater runat="server" ID="repFooditems" OnItemDataBound="MenuItemRepeater"> 
       <ItemTemplate> 
        <div class="menuItem" id="menuItem" runat="server"> 
         <div runat="server" class="itemNumber" id="ItemId"></div> 
         <div runat="server" class="itemName" id="itemName"></div> 
         <div runat="server" class="itemDescription" id="itemDescriptionLbl"></div> 
        </div> 
       </ItemTemplate> 
      </asp:Repeater> 

     </div> 

代碼隱藏:

所屬分類:

var lbl = (HtmlGenericControl)e.Item.FindControl("catItem"); 

lbl.Attributes.Add("catId",""+rest.CategoryId); 

ITEMLIST:

var menuItem = (HtmlGenericControl)e.Item.FindControl("menuItem"); 
      menuItem.Attributes.Add ("cat","cat"+item.Item.Category.FirstOrDefault().CategoryId); 

jquery:

$('.menuListUl li div').bind('click', function() 
     { 
      var catId = $(this).attr('catid'); //The categoryid on the element clicked. 


      // Now: find the first element with the same cat id 

      var element = ""; The element found. 

      $('html, body').animate({ 
       scrollTop: element.offset().top 
      }, 2000); 
     }); 

回答

2

這會爲您選擇帶foobar的元素作爲catid。這似乎是你想要的嗎?

$('.menuListUl li div[catid="foobar"]') 
+1

這就是完美的:)謝謝!我會盡快接受答案 – sindrem 2013-05-06 11:06:24

+0

其實。這將獲得類別列表中的元素,而我需要項目列表中的第一項。 – sindrem 2013-05-06 11:14:42

+0

@sindrem您可以執行$( 'menuListUl李格[CATID = 「foobar的」] ')[0]或$('。menuListUl李格[CATID = 「foobar的」]')。第一() – fmsf 2013-05-06 11:33:40