将jQuery中的元素隐藏在表中
Hiding elements in jQuery inside a table
我有一个包含tr
和td
的表。我的td
有一个div
作为它的子级。一个div
具有id="question"
,另一个具有id="answerswer"
。在遍历td
时,我希望隐藏具有id="answerswer"
的div
。页面加载时,只应出现问题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&v=2.2.RC2">
<br>
<br>
<div id="answerswer">
<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&v=2.2.RC2">
<br>
<br>
<div class="answerswer">
然后您可以执行这个简单的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')
但这是一种为如此简单的编写大量代码的方法
EDIT:的示例
使用选择器。
给所有答案框一类"答案"
使用:
$(".answer").hide();
这将用答案类隐藏所有答案。显示他们调用问题ID和答案类:
$("#Q1 .answer").show();
不幸的是,我不太熟悉表格,但我希望这个答案有一定的价值。
经过编辑以反映评论
元素id在文档中最好是唯一的。这不是绝对需要的,但它会使您更容易使用元素。在您的情况下,我会将您所有的问答id属性改为类。然后你可以这样做来隐藏你的所有答案:
$('#faqGrid tr td div.answer').hide();
相关文章:
- 如何编写一个抽象层来隐藏 jquery 中的 DOM 元素
- 隐藏jQuery日期选择器
- 显示/隐藏JQuery
- 显示/隐藏jQuery菜单单击功能
- 如何在焦点上隐藏jquery掩码中的括号和连字符
- Angular JS使用ng-show来隐藏Jquery Multiselect的某些选项
- 使用block/none显示/隐藏jquery
- 单击时重置计时器以进行显示和隐藏 - jquery
- 根据布尔数组显示或隐藏jQuery元素
- 点击按钮显示/隐藏JQuery的特定潜水
- Javascript隐藏Jquery窗体
- 验证时取消隐藏jquery中的特定字段
- 如果数字小于零,而负数将其隐藏jquery
- 显示/隐藏jquery脚本
- PDF在Safari 5.1.7中隐藏Jquery模型窗口
- 安全地向用户隐藏jQuery结果
- 我无法用我的函数隐藏jquery自动完成
- 隐藏JQuery后未显示Div
- 悬停时使用显示/隐藏 jquery 函数平滑过渡
- 使用hide、prop、attr或css隐藏JQuery元素之间的区别