2011-01-26 2 views
1

имеют тег тела на странице, которая имеет как идентификатор и класс:Как узнать, если тег имеет определенный класс и идентификатор

<body class="class" id="id"> 

Я пытаюсь использовать JQuery, чтобы случайно некоторые содержания далее вниз по странице, исходя из того, что такое класс И id. Я не имел никакого успеха, для чего это стоит, вот что я пытался сделать:

if($('body').is('#id1')){ 
    if($(this).hasClass('class1')){ 
     $('ul.nav li.first').html('<h2>Special Title</h2>'); 
    }else if($(this).hasClass('class2')){ 
     $('ul.nav li.first').html('<h2>Other Title</h2>'); 
    } 
}else if($('body').is('#id2')){ 
    if($(this).hasClass('class1')){ 
     $('ul.nav li.first').html('<h2>Special Header</h2>'); 
    }else if($(this).hasClass('class2')){ 
     $('ul.nav li.first').html('<h2>Other Title</h2>'); 
    } 
} 

Кто-нибудь есть быстрый способ сделать это? Я ужасен в цикле «если», используя jQuery, всегда был.

Приветствия,

T

ответ

2

Для записи здесь нет необходимости использовать jQuery.

var isId = (document.body.id === someId); 
var isClass = (document.body.className.indexOf(someClass) !== -1); 

if (isId && isClass) { 
    // do something 
} 

[Редактировать]

Проверка класса ужасна. Попробуйте

var regexp = new RegExp("(^|//s)" + someClass + "($|//s)", "m"); 
var isClass = (document.body.className.search(regexp) !== -1); 
+0

когда есть! Необходимо! использовать jQuery? – jAndy

+0

Пока у вас есть 'class12' в' className'. Я согласен с вещью 'id', но jQuery упрощает манипуляции класса примерно в 13.63 раза. – lonesomeday

+0

Это не отличная проверка класса: при проверке класса «foo» на элемент с классом «foobar» он вернет «true». Я бы рекомендовал нечто вроде 'new RegExp (" (^ | \\ s) "+ someClass +" (\\ s | $) "). Test (document.body.className); вместо этого. –

0

Ничего. Для кого-то интересно, я никогда не определял, что такое $(this). Заменил его $('body'), и теперь он работает.

Извините. Двигайся, ничего, чтобы увидеть здесь!

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