【发布时间】:2014-05-25 14:57:00
【问题描述】:
我正在尝试选择页面上的那些输入字段以验证哪些在布局上可见。我可以通过一种方式找到它,但用另一种方式它实际上并没有工作。我得到的是我的选择器适用于直系子女,但不适用于孙子女。
我只想选择那些在布局上实际可见的元素 id 来验证它们,因为它们不应该是空白的。
HTML
<div id="createdDiv1">
<div id="row11">
<div class="hide">
<input type="text" class="blk" id="inp_11"/>
</div>
</div>
<div id="row12">
<div>
<input type="text" class="blk" id="inp_12" />
</div>
</div>
</div>
<div id="createdDiv2">
<div id="row21" class="hide">
<div>
<input type="text" class="blk" id="inp_21" />
</div>
</div>
<div id="row22" class="">
<div>
<input type="text" class="blk" id="inp_22" />
</div>
</div>
</div>
<button onclick="subCheck('#createdDiv1 :visible')">check 1st</button>
<button onclick="subCheck('#createdDiv2 :visible')">check 2nd</button>
JavaScript
function subCheck(inBlock) {
inBlock=(inBlock==undefined)?'':inBlock;
var ids=[];
$(inBlock+' .blk').each(function(){
ids.push($(this).attr('id'));
});
console.log(ids);
}
CSS
.hide{
display:none;
}
注意:我不想更改我的 subCheck() 函数,因为它适用于所有验证,我需要知道如何使它与 :visible 选择器或类似的东西一起使用让它与可见元素的多级检查一起工作。
对不起,如果我让你模棱两可。我不知道具体用什么语言来解释。
【问题讨论】:
-
您对示例中的警报显示有何看法?
-
我的警报正在显示所选元素,我希望只有那些在布局上可见的元素才会出现警报。 @IrvinDomininaka爱德华
-
你试过使用 .is() 吗? jsfiddle.net/rKwCy
标签: javascript jquery html css jquery-selectors