如何使用jQuery获取div中隐藏元素的name属性?

时间:2015-04-23 16:21:14

标签: javascript jquery

我有一个嵌套网格,位于' 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>  

3 个答案:

答案 0 :(得分:0)

你可以在jquery中使用属性选择器

https://api.jquery.com/attribute-equals-selector/

你的jquery选择器就像:

$('[style="display:none"]')

但如果显示器有任何内联样式,则不会选择元素

答案 1 :(得分:0)

“我需要隐藏的元素来跟踪哪些网格是打开的”。也许你可以试试这个:

  1. <asp>
  2. 中添加其他CssClass
  3. 使用jQuery
  4. 过滤它

    $('.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]