2011-01-26 6 views
1

はidとクラスの両方を持っているページのbodyタグの有無:どのタグが特定のクラスを持っているかどうかを確認し、ID

<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を使って "if"ループを起こすのはひどいです。

乾杯、

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

'className'に' class12'があるまでは。私は 'id'のことに同意しますが、jQueryはクラス操作を約13.63倍に簡単にします。 – lonesomeday

+0

これは素晴らしいクラスチェックではありません。クラス "foobar"を持つ要素のクラス "foo"をチェックするときに 'true'を返します。 '新しいRegExp("(^ | \\ s) "+ someClass +"(\\ s | $) ")。test(document.body.className);のようなものをお勧めします。 –

0

は気にしません。疑問に思っている人のために、私は決して$(this)が何であるか決して定義しなかった。それを$('body')に置き換えました。

申し訳ありません。一緒に移動し、ここには何も見ない!

関連する問題