为什么查询仅在IE中失败

时间:2011-06-13 16:18:31

标签: javascript internet-explorer parent

我的查询效果很好,但后来我在IE上查看它,这是一场灾难。我想知道它是否是代码的父部分。父母正试图到达包含信息的第一个<table>。是否有更简单的方法直接进入桌面?

 <script>
 if ($('b:contains("Choose a sub category:")').length > 0) {
 var newSubnav = document.createElement( 'ul' );
 $(newSubnav).addClass("sub_categories_holder");
  $('b:contains("Choose a sub category:")').parent().parent().parent().parent().parent().parent().parent().prepend( newSubnav );

 $('a.subcategory_link').appendTo($('ul.sub_categories_holder'));
 $('a.subcategory_link').wrap("<li class='sub_categories'></li>");
 $('li.sub_categories').before("<li class='sub_categories_divider'></li>");
 $("li.sub_categories_divider:eq(0)").remove();

 $("b:contains('Choose a sub category:')").parent().parent().parent().parent().parent().remove();
 $("img[src='/v/vspfiles/templates/GFAR NEW NAV/images/Bullet_SubCategory.gif']").remove();
 $("td.colors_backgroundneutral").css("background-color","transparent");
 $("td.colors_backgroundneutral").children(':first-child').attr("cellpadding","0");
 };

 </script>

1 个答案:

答案 0 :(得分:1)

除非你提供你的标记(至少是假的标记),否则它都会猜到你会得到它。

  1. 而不是.parent().parent().parent().parent().parent().parent().parent().prepend( newSubnav );检查您是否可以使用.parents()。这将使父母一直回到HTML。您甚至可以使用选择器作为父级(选择器)进行过滤。阅读jquery api页面上的更多内容。

  2. 由于您使用的是jQuery,因此可以使用$("ul")代替document.createElement("ul")