Javascript 如何在没有';你没有分机吗?
我在asp.net repeater中有下载.pdf文件的链接,但我想隐藏没有.pdf文件扩展名的链接。Javascript 如何在没有';你没有分机吗?,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我在asp.net repeater中有下载.pdf文件的链接,但我想隐藏没有.pdf文件扩展名的链接。 javascript // get file extensions var fileURL = $('hl_download').attr("href"); // get file extensions var fileURL = $('hl_download').attr("href"); function getFileExtension(fileU
javascript
// get file extensions
var fileURL = $('hl_download').attr("href");
// get file extensions
var fileURL = $('hl_download').attr("href");
function getFileExtension(fileURL) {
return filename.split('.').pop();
}
var fileExtension = getFileExtension(fileURL);
if (fileExtension == null) {
$('hl_download').addClass("hideLinke");
}
asp-markup
<asp:Repeater ID="rp_resList" runat="server" OnItemDataBound="rp_resList_ItemDataBound" OnItemCommand="rp_resList_ItemCommand">
<ItemTemplate>
<div class="resource">
<div class="resource-head clearfix">
<img class="pull-left" src="/ideapark/DesktopModules/ResourcesFilter/img/<%# Eval("typeId") %>.png" alt="icon type" width="36" height="36" />
<p class="resource-title pull-left">
<asp:Literal ID="litType" runat="server" Text='<%# Eval("resType") %>'></asp:Literal>
</p>
<div class="favorite-resource favorited pull-right">
<asp:ImageButton ID="imgBtn_bookmark" runat="server" CommandName="bookmark_res" ImageUrl="~/DesktopModules/ResourcesFilter/img/off.png" />
</div>
</div>
<div class="resource-body">
<asp:HiddenField ID="hf_resID" runat="server" Value='<%# Eval("Id") %>' />
<p class="resource-subtitle"><a href='<%# Eval("pageID") %>'><%# Eval("name") %></a></p>
<p>
<asp:Literal ID="litSummary" runat="server" Text='<%# Eval("summary") %>'></asp:Literal>
</p>
<div class="resource-links">
<p><a class="resource-like" href="#">Like</a> <strong>·</strong> <asp:HyperLink ID="hl_download" runat="server" CssClass="resource-download" NavigateUrl='<%# Eval("pdf_Doc_url") %>' ClientIDMode="Static">Download</asp:HyperLink> </p>
</div>
<div class="resource-tags clearfix">
<asp:Repeater ID="rp_tagsTopics" runat="server">
<ItemTemplate>
<span class="resource-tag pull-left">
<asp:LinkButton ID="lnkBtnTags" runat="server" Text=' <%# Container.DataItem %>' OnClick="LinkButton1_Click"> <%# Container.DataItem %></asp:LinkButton>
</span>
</ItemTemplate>
</asp:Repeater>
</div>
</div>
</div>
</ItemTemplate>
</asp:Repeater>
//获取文件扩展名
var fileURL=$('hl_download').attr(“href”);
//获取文件扩展名
var fileURL=$('hl_download').attr(“href”);
函数getFileExtension(fileURL){
返回filename.split('.').pop();
}
var fileExtension=getFileExtension(fileURL);
if(fileExtension==null){
$('hl_download').addClass(“hideLinke”);
}
asp标记
·下载
您有两个主要问题。首先,对于没有扩展名的文件,扩展名检查将失败。检查以下内容:
function getFileExtension(fileURL) {
if(filename.indexOf('.') === -1){return "";} //check for no extension
return filename.split('.').pop();
}
其次,您没有检查任何特定链接。使用JQuery查找所有这些文件,并一次隐藏一个文件。假设您所指的链接是“类似资源的”:
除非您打算隐藏链接服务器端,否则我们可能不需要中继器代码,除非您在这方面也有问题。如果你愿意的话,你可以在数据绑定中继器之前检查这个。事实上,看看你的JS,你的选择器不够具体-你需要单独检查每个链接。这是我的问题。因为我在repeater中有多个链接,我将ClientMode=“Static”作为超链接。我的大问题是如何在javascript中获取所有下载链接您可以使用我回答中的代码在javascript中循环每个链接,或者在C#中修改集合,以便在数据绑定之前删除所有不符合条件的链接。
$.each($('.resource-like'),function(){
var fileExtension = getFileExtension(this.href);
if (fileExtension == "" || fileExtension != "pdf") {
$(this).addClass("hideLinke");
}
});