我在确定特定dom对象是否可见时遇到问题。我将以下代码输出到控制台,即使我可以在屏幕上看到该元素,它也总是返回false。
console.log(itemElement.innerText +" is visible: " + $(itemElement.id).is(':visible'));
我正在测试的上下文是查看jQuery Accordion对象中的列表项是否可见。我正在遍历所有列表元素(包括子列表元素)并执行此检查。始终检查返回false。我到处搜索了一个答案,但找不到答案。
这是用于显示布局外观的html。我已经编辑了一下以保持合理,但你应该知道它是如何设置的。
<div id="collection_form">
<div id="element_container">
<ul class="element_list element_group ui-sortable">
<li id="de_1" class="element_group_parent eg-collapsed element_group_leaf">
stuff in here is same as below
</li>
<li id="de_29" class="element_group_parent eg-collapsed element_group_leaf">
<div>
<span>Room Booking</span>
<span class="element_type"> - Group</span>
<span class="remove_element">remove</span>
<div style="clear:both"></div>
</div>
<ul class="element_group">
<li id="de_30" class="element_config_form element_group_leaf">
<div>
<span>Room Number</span>
<span class="element_type"> - Text</span>
<span class="remove_element">remove</span>
<div style="clear:both"></div>
</div>
</li>
</ul>
</li>
<li id="de_31" class="element_group_parent eg-collapsed element_group_leaf">
<div></div>
<ul class="element_group">
<li id="de_32" class="element_config_form element_group_leaf">
<div> more stuff </div>
</li>
</ul>
</li>
</ul>
</div>
</div>
我做错了什么?
答案 0 :(得分:0)
试试这个:
$(itemElement).is(':visible'); // this works if itemElement is a DOM element, or even if itemElement is a jQuery wrapped DOM elemenent
我怀疑你的itemElement.id
是undefined
但是如果itemElement.id被正确定义(作为你的itemElement的id,在这种情况下意味着itemElement是一个DOM元素)你可以这两个:
$("#"+itemElement.id).is(':visible');
甚至更好:
$(itemElement).is(':visible');