我有一个带有trtd的表。我的td有一个div作为其子级。一个div具有id="question",另一个具有id="answer"。我想在遍历td时隐藏divid="answer"。页面加载时,仅出现问题div。这是HTML的结构

<td style="display: none;">
    <div style="border-color: #000000;position: relative;float: right;margin-top: 2px;right: 12%;"> </div>
    <div style="border-color: #000000;position: relative;float: right;margin-top: 2px;right:-2%;"> </div>
    <div id="question">
        <img id="faqGrid:0:j_idt77" height="10" width="480" src="/TDAP/faces/javax.faces.resource/spacer/dot_clear.gif?ln=primefaces&amp;v=2.2.RC2">
        <br>
        <br>
    <div id="answer">
    <div class="horizontalline"></div>
</td>


我做了以下。但这隐藏了整个td。

$('#faqGrid tr td').each(function(){

    var $cells = $();

   /**
    *Gives you all children as an object array
    * 0: div
    * 1: div
    * 2: div#question
    * 3: img#faqGrid:0:j_idt77 /TDAP/fa...=2.2.RC2
    * 4: br
    * 5: br
    * 6: div#answer
    * 7: div.horizontalline
    */
    var tdChildrenArray = $(this).children();

    var divChildrenArray = $(this).children('div');

    var elementStack;

    $.each(divChildrenArray, function(index, value){

       var $div = value;

       if ($div.id) {

           var $divId = $div.id;

           if ($divId == 'answer') {

              var colNum = $(this).cellIndex;
              $cells = $cells.add($div);

           } //end of if ($divId == 'answer')

       } //end of if ($div.id)

    }); //end of  $.each(object, fn)

    return $(this).pushStack($cells);

}).hide(); //end of $('#faqGrid tr td').each(fn)


我的想法是,推入堆栈中的div仅应隐藏,但这不是真正的输出。

最佳答案

如果行多,则不应使用多个ID属性。改为将其更改为类...

<div class="question">
    <img id="faqGrid:0:j_idt77" height="10" width="480" src="/TDAP/faces/javax.faces.resource/spacer/dot_clear.gif?ln=primefaces&amp;v=2.2.RC2">
    <br>
    <br>
<div class="answer">


然后,您可以执行此简单的JQuery来隐藏答案元素...

$(".answer").hide();


为了直接回答您的问题,无论如何,在TD元素集合上都将您称为.hide()函数。

您可以从最末端移动.hide()并放入此行...

if ($divId == 'answer') {

    $div.hide();//hide your answer element
    var colNum = $(this).cellIndex;
    $cells = $cells.add($div);

} //end of if ($divId == 'answer')


...但这是为如此简单的代码编写大量代码的方法

编辑:A Sample of what you might be trying to do

关于javascript - 在表格内隐藏jQuery中的元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8894471/

10-15 18:57