我有一个转发器和一些物品。其中一项是链接按钮。我想隐藏它,实际上我只能是第一个。我的意思是如果转发器显示4条记录,则只有第一条链接按钮变为隐藏状态。我可以看到我需要一个循环来转发转发器并隐藏所有链接按钮,但我真的卡住,因为我是初学者在JavaScript中。 这是我的转发器:
<asp:Repeater DataSourceID="EntityDataSourceHdcvi" ID="Repeater1" runat="server">
<ItemTemplate>
//Some other code
<div id="silBeni" class="sil fl">
<asp:LinkButton ID="deleteProduct" runat="server" Text="Kaldır" CommandArgument='<%#Eval("UrunId")%>' CommandName="deleteProduct" OnClick="LinkButton_Click"></asp:LinkButton>
</div>
</ItemTemplate>
</asp:Repeater>
我的javascript代码:
function hideColumn() {
sartnameDiv.style.display = 'block';
var bizimDiv = document.getElementById("silBeni");
bizimDiv.style.display = "none";
}
答案 0 :(得分:2)
你可以做的是按班级搜索。不能有多个具有相同id的元素,因此我们按类搜索多个元素。
var elements = document.getElementsByClassName("sil");
Array.prototype.forEach.call(elements, function(element) {
element.style.display = "none";
});
请注意,普通数组函数不能用于getElementsByClassName的结果,所以这就是你需要
的原因 Array.prototype.forEach.call
而不是像普通数组那样写作。
elements.forEach(function(element){
});
请注意,现在我们将找到所有具有类sil的元素,这意味着如果页面上有更多元素与此类,则也会找到它们,因此您可能需要相应地调整html。
编辑:根据Webruster的评论,我们还需要确保在我们希望它被调用时调用该函数。
答案 1 :(得分:0)
您可以创建一个虚拟css并附加到要为其执行某些操作的HTML,而不是更改HTML,其余的操作由@Fakenick清楚地解释。 请看下面如何添加虚拟css:
这是 HTMl
<asp:Repeater DataSourceID="EntityDataSourceHdcvi" ID="Repeater1" runat="server">
<ItemTemplate>
//Some other code
<div id="silBeni" class="sil fl hideclass">
<asp:LinkButton ID="deleteProduct" runat="server" Text="Kaldır" CommandArgument='<%#Eval("UrunId")%>' CommandName="deleteProduct" OnClick="LinkButton_Click"></asp:LinkButton>
</div>
</ItemTemplate>
</asp:Repeater>
制作一个虚拟的 Css 并尝试追加隐藏的 Div
<style>
.hideclass{
}
</style>
<强> JS 强>
function hideColumn() {
sartnameDiv.style.display = 'block';
var elements = document.getElementsByClassName("hideclass");
Array.prototype.forEach.call(elements, function(element) {
element.style.display = "none";
});
}