在表格中隐藏jQuery中的元素

Bas*_*sit 0 javascript jquery html-table jquery-selectors

我有一张桌子trtd.我td有一个div孩子.其中divid="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>
Run Code Online (Sandbox Code Playgroud)

我做了以下.但它隐藏了整个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)
Run Code Online (Sandbox Code Playgroud)

我的想法是,div推送栈上的那些只应隐藏,但这不是真正的输出.

mus*_*fan 5

如果您有多行,则不应使用多个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">
Run Code Online (Sandbox Code Playgroud)

然后你可以做这个简单的JQuery来隐藏答案元素......

$(".answer").hide();
Run Code Online (Sandbox Code Playgroud)

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

你可以.hide()从最后移动并放入这条线......

if ($divId == 'answer') {

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

} //end of if ($divId == 'answer')
Run Code Online (Sandbox Code Playgroud)

...但这是很简单的代码

编辑:您可能尝试做的一个示例