动态获取ID

动态获取ID

问题描述:

我有一个垂直制表符,每个制表符的div都是用ID打开的。这三个div的是作为跟随DIV动态获取ID

<div id="About-content" class="contentblock"> 
    <h1 class="Abouthead">About RBL Bank</h1> 

    <img src="images/common/rbl-bank-logo.jpg" alt="RBL Bank" class="Logos" /> 
    <p class="Aboutuspara">....</p> 
    <p class="Aboutuspara">....</p> 
    <p class="Aboutuspara">....</p> 
</div> 
<!-- @end #home-content --> 
<div id="Iksha-content" class="contentblock hidden"> 
    <h1 class="Abouthead">Iksha Foundation</h1> 

    <img src="images/CRS/Ourpartners/ikshafoundation.png" class="Logos" /> 
    <p class="Aboutuspara">...</p> 
    <p class="Aboutuspara">...</p> 
    <p class="Aboutuspara">...</p> 
</div> 
<!-- @end #about-content --> 
<div id="Iimpact-content" class="contentblock hidden"> 
    <h1 class="Abouthead">Iimpact Foundation</h1> 

    <img src="images/CRS/Ourpartners/IImpact.png" 
      alt="Iimpact Foundation" class="Logos" /> 
    <p class="Aboutuspara">...</p> 
    <p class="Aboutuspara">...</p> 
    <p class="Aboutuspara">...</p> 
</div> 

HTML和我的标签从数据库表来, 我希望在

Iimpact内容点击只有DIV应该打开,因为我已经写了代码,但问题是如何在点击时动态获取ID

<asp:ListView ID="lstAbout" runat="server"> 
    <LayoutTemplate> 
     <asp:PlaceHolder ID="itemPlaceHolder" runat="server"> 
     </asp:PlaceHolder> 
    </LayoutTemplate> 
    <ItemTemplate> 
     <li> 
      <%--I want ID to be set dynamically to the anchor tag--%> 
      <a href=""><%#Eval("ngo_name") %></a> 
     </li> 
    </ItemTemplate> 
</asp:ListView> 

而且我对隐藏和显示jQuery是如下: -

$('#sidemenu a').click(function (e) { 
    e.preventDefault(); 

    if ($(this).hasClass('open')) { 
     // do nothing because the link is already open 
    } else { 
     var oldcontent = ".contentblock"; //$('#sidemenu a.open').attr('href'); 
     var prev = $('#sidemenu a.open').attr('href'); 
     var newcontent = $(this).attr('href'); 
     $(oldcontent).hide(); 
     $(newcontent).fadeIn().removeClass('hidden'); 

     $('#sidemenu a').removeClass('open'); 
     $(this).addClass('open'); 
    } 
}); 

或请建议,如果有任何其他方式.. !!

如果您在ListView使用超链接网页控制与ClientIDMode可预测的:

<asp:HyperLink 
ID="HyperLink" 
NavigateUrl="http://www.*.com" 
Text='<%#Eval("ngo_name") %>' 
ClientIDMode="Predictable" 
runat="server" /> 

这应该渲染的id为:

<a id="HyperLink0" href="">Link 1</a> 
<a id="HyperLink1" href="">Link 2</a> 
<a id="HyperLink2" href="">Link 3</a> 

正如上面的号码将会自动递增从零开始。

如果你想使用的标签ID从您的数据库,而不是你可以简单地增加一个ClientIDRowSuffix属性,并将其设置为属性:

<asp:HyperLink 
ID="HyperLink" 
NavigateUrl="http://www.*.com" 
Text='<%#Eval("ngo_name") %>' 
ClientIDMode="Predictable" 
ClientIDRowSuffix="TabId" 
runat="server" /> 

然后,您可以从您的jQuery的点击处理程序中让你的身份证如下:

var id = $(this).attr('id'); 

超链接的ListView

<asp:ListView ID="lstAbout" runat="server"> 
     <LayoutTemplate> 
      <asp:PlaceHolder ID="itemPlaceHolder" runat="server"</asp:PlaceHolder> 
     </LayoutTemplate> 
     <ItemTemplate> 
      <li> 
        <asp:HyperLink 
        ID="HyperLink" 
        NavigateUrl="http://www.*.com" 
        Text='<%#Eval("ngo_name") %>' 
        ClientIDMode="Predictable" 
        runat="server" /> 
      </li> 
     </ItemTemplate> 
    </asp:ListView> 

更新

如果使用上面的代码,超链接的ID将呈现如下(简化演示):

<a id="HyperLink0" href="">Link 1</a> 
<a id="HyperLink1" href="">Link 2</a> 
<a id="HyperLink2" href="">Link 3</a> 

下面的JavaScript可以用来显示所需内容股利。:

$(function(){ 
    // Initially hide all but show first one 
    $('.contentblock').hide(); 
    $('.contentblock :first').show(); 

    $('a').click(function (e) { 
    e.preventDefault(); 
    // hide all 
    $('.contentblock').hide(); 
    var id = $(this).attr('id'); 
    // get the div number to show 
    var numberedDiv = parseFloat(id.replace("HyperLink", "")) 

    var divToShow = $('.contentblock')[numberedDiv]; 
    $(divToShow).show(); 
    }) 

}); 

jsFiddle

+0

我应该如何插入'hyperlink'在'listview'请帮助 – 2015-02-13 10:14:14

+0

@RahulSutar见更新的答案。 :) – hutchonoid 2015-02-13 10:17:01

+0

另外我得到错误,因为'服务器标记不正常形成' – 2015-02-13 10:21:21

HTML5,你可以做类似

<a href="" data-tag="your tags"></a> 

在您的jQuery的点击功能

$tag = $(this).data('tag'); 

下面的方法​​

使用,这将有助于

$('.Iimpact-content').live('click',function(){ 
var elementID=this.ID; 
});