2011-06-13 3 views
-1

Мой запрос отлично работает, но затем я проверяю его на IE, и это катастрофа. Мне интересно, является ли это родительской частью кода. Родители пытаются достичь первого <table>, содержащего информацию. Есть ли более простой способ напрямую добраться до стола?Почему запрос не работает только в IE

<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

Если вы не предоставите свою разметку (по крайней мере фиктивный один), это все думаю, что вы собираетесь получить.

  1. Вместо .parent().parent().parent().parent().parent().parent().parent().prepend(newSubnav); проверки, если вы можете использовать .parents(). Это вернет вас всем родителям до HTML. Вы можете использовать селекторы как родители (селектор) для фильтрации. Подробнее читайте на странице jquery api.

  2. Поскольку вы используете JQuery, вы можете использовать $("ul") вместо document.createElement("ul")

Смежные вопросы