0

次のhtmlが与えられた場合:

<ul class="accordion">

  <li class="accountStatus">
    <a href="#">
    <ul class="sub-menu"></ul>
  </li>

  <li class="Personal">
    <a href="#">
    <ul class="sub-menu"></ul>
  </li>

</ul>

次の jquery select が 2 つの要素 (a とサブメニュー) に対して正常に機能することを知っています。

$('.accordion > li > a')
    $('.accordion li > .sub-menu');

しかし、これは ie6 では機能しません。選択する必要がある正確な要素を選択する別の方法を教えてください。

ありがとう、

4

1 に答える 1

1

1つの方法は、IE6にあることがわかっているメソッドを使用してすべてのノードを取得し、続行する前にjQueryオブジェクトに変換することです。

var all_uls = document.getElementsByTagName('ul'), i = all_uls.length, 
    interesting_uls = [], interesting_as = [];
while (i--) {
    if (all_uls[i].className === 'accordion') {
        // get ul.accordion
        interesting_uls.push(all_uls[i]);
    }
}
all_uls = interesting_uls, i = all_uls.length; // reset for next class lookup
while (i--) {
    if (all_uls[i].className === 'sub-menu') {
        // get ul.accordion ul.sub-menu
        interesting_uls.push(all_uls[i]);
    }
    // get <a>s
    interesting_as = interesting_as.concat(all_uls[i].getElementsByTagName('a'));
}
$(interesting_uls); // to jQuery obj
$(interesting_as);
于 2013-02-20T02:24:48.363 に答える