2

特定の 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>

私が間違っているのは何ですか?

4

1 に答える 1

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');
于 2012-10-05T18:50:15.090 に答える