2010-07-12 85 views
0

我使用jQuery來獲取DIV標籤的ID,然後相應地添加一些CSS樣式到DIV 。
我是新來的jQuery,我不知道這是一個很好的辦法做到這一點:抓取一個DIV標籤的ID,然後添加一些CSS樣式到DIV相應

的JavaScript:

$(".myClass").click(function(e){ 
    var whatid = $(this).attr('id'); 
    var whichDiv = "divName"+whatid; 
    ("$(\"#"+whichDiv+"\")").addClass(); 
    } 

HTML:

<div id="myTest1" class="myClass"> 
    Helloworld I am new to JQuery 1 
</div> 
<div id="myTest2" class="myClass"> 
    Helloworld I am new to JQuery 2 
</div> 

請指教。


如果我改變了這樣的代碼:

的JavaScript:

$(".myClass").click(function(e){ 
    var whatid = $(this).attr('id'); 
    var whichDiv = "divName"+whatid; 
    ("$(\"#"+whichDiv+"\")").addClass(); 
    } 

HTML:

<div id="1" class="myClass">CLick here 1</div> 
<div id="2" class="myClass">CLick here 2</div> 

<div id="myTest1"> 
    Helloworld I am new to JQuery 1 
</div> 
<div id="myTest2"> 
    Helloworld I am new to JQuery 2 
</div> 
+0

這是整個代碼? '「divName」來自哪裏,爲什麼你覺得你需要它? – Kobi 2010-07-12 16:36:22

+0

@Kobi 對不起,我正在做一些關於JQUery的自學,這個問題出現在我的腦海。 – user327712 2010-07-12 18:48:49

回答

7

this已經代表股利用戶點擊。您不需要使用jQuery重新選擇它,因爲您已經有了對它的引用。

簡單地說,類添加到它:

$(this).addClass('someClass'); 

對於示例:

$(".myClass").click(function(e) { 
    // dont need to pull the id attribute 
    // dont need to select the element again by id 
    $(this).addClass('someClass'); 
}); 

而且我們說,如果你需要idid恰好是一個變量來選擇一些元素,那麼這個語法無效:

("$(\"#"+whichDiv+"\")").addClass(); 

在這裏,你是c重新綁定一個字符串,然後嘗試調用字符串上的addClass方法,該方法不存在。也沒有任何參數調用addClass是無用的,因爲您想傳入類名稱以添加到此處的元素。

$("#" + whatid).addClass('someClass'); 
+0

非常感謝你,Anurag。 – user327712 2010-07-12 18:47:31

+0

@kwokwai - 很高興有幫助。乾杯! – Anurag 2010-07-12 19:09:39

1

下面是完整的例子:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <title>Click Me</title> 
    <style> 
     .foo { 
      color:#F00; 
      font-size:40px; 
     } 
    </style> 
    <script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js"></script> 
    <script type="text/javascript"> 

     $(function() { 

      $('.myclass').click(function() { 
       alert('you clicked this: ' + this.id); 
       $(this).addClass('foo'); 
      }); 

     }); 

    </script> 
</head> 
<body> 
    <div id="mytest1" class="myclass"> 
     helloworld i am new to jquery 1 
    </div> 
    <div id="mytest2" class="myclass"> 
     helloworld i am new to jquery 2 
    </div> 
</body> 
</html> 
1

如果選擇是名副其實的"divName"串聯以及您點擊的元素的ID,那就試試這個:

$(".myClass").click(function(e){ 
    $("#divName" + this.id).addClass('someClassName'); 
} 

更新:

要匹配您提供的HTML,請執行以下操作,但請注意,它可能無效,因爲啓動ID爲的ID無效。

$(".myClass").click(function(e){ 
    $("#myTest" + this.id).addClass('someClassName'); 
} 

相反,您應該通過以字母開頭來使您的ID有效,並調整配對的元素ID以匹配更改。

+0

你說得對。 謝謝你,帕特里克。 – user327712 2010-07-12 18:47:04

相關問題