我有一个嵌套网格,位于' div'元件。我有一个隐藏元素来确定div是否扩展。我需要获取隐藏元素的名称(uniqueID)来设置它。打开/关闭网格的jquery如下:
function DivExpandCollapse(RecipientID) {
var div = document.getElementById(RecipientID);
var img = document.getElementById('img' + RecipientID);
var hiddenID = //div + ?? to ID the hidden element
var hiddenElement = document.getElementById(?????);
if (div.style.display == "none") {
div.style.display = "inline";
img.src = "Images/minus.png";
//Setting the hidden element to 'expanded'
hiddenElement.val("1");
}
else {
div.style.display = "none";
img.src = "Images/plus.png";
//Use ID of hidden element to set to 'hide'
hiddenElement.val("");
}
}
div ID在标记中定义:
<tr><td colspan="100%">
<div id="div<%# Eval("RecipientID") %>" style="display:none">
<asp:HiddenField ID="recdevgvIsExpanded" runat="server" ClientIDMode="Static"/>
</div>
</td></tr>
答案 0 :(得分:0)
你可以在jquery中使用属性选择器
https://api.jquery.com/attribute-equals-selector/
你的jquery选择器就像:
$('[style="display:none"]')
但如果显示器有任何内联样式,则不会选择元素
答案 1 :(得分:0)
“我需要隐藏的元素来跟踪哪些网格是打开的”。也许你可以试试这个:
<asp>
$('.getThisID').click(function() {
var elem = $(this).find('.getMyID');
var id = $(elem).attr('id');
console.log(id); // Tadaaa, your ID here
// Then you can style $(this), either to display:inline, or create an additional img and set the img src
});
<tr>
<td colspan="100%">
<div id="div_<%# Eval("RecipientID") %>" class="getThisID" style="display:none">
<asp:HiddenField ID="recdevgvIsExpanded" runat="server" ClientIDMode="Static" CssClass="getMyID"/>
</div>
</td>
</tr>
答案 2 :(得分:0)
不使用jQuery就可以这样做:
var hiddenElement = document.getElementById(RecipientID).getElementsByTagName('input')[0];
Asp:HiddenField呈现为
inputp[type=hiudden]