动态获取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();
})
});
答
HTML5,你可以做类似
<a href="" data-tag="your tags"></a>
在您的jQuery的点击功能
$tag = $(this).data('tag');
或
下面的方法
答
使用,这将有助于
$('.Iimpact-content').live('click',function(){
var elementID=this.ID;
});
我应该如何插入'hyperlink'在'listview'请帮助 – 2015-02-13 10:14:14
@RahulSutar见更新的答案。 :) – hutchonoid 2015-02-13 10:17:01
另外我得到错误,因为'服务器标记不正常形成' – 2015-02-13 10:21:21