每次检查都是可见的,返回false

时间:2012-10-05 18:34:10

标签: jquery-ui hide jquery-ui-accordion visible

我在确定特定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>

我做错了什么?

1 个答案:

答案 0 :(得分:0)

试试这个:

 $(itemElement).is(':visible');  // this works if itemElement is a DOM element, or even if itemElement is a jQuery wrapped DOM elemenent

我怀疑你的itemElement.idundefined

但是如果itemElement.id被正确定义(作为你的itemElement的id,在这种情况下意味着itemElement是一个DOM元素)你可以这两个:

$("#"+itemElement.id).is(':visible');

甚至更好:

$(itemElement).is(':visible');