获取DIV标记的ID,然后相应地向DIV添加一些CSS样式

use*_*712 0 jquery

我使用jQuery来获取DIV标签的ID,然后相应地为DIV添加一些CSS样式.
我是jQuery的新手,我不确定这是否是一个很好的方法:

JavaScript的:

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

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>
Run Code Online (Sandbox Code Playgroud)

请指教.


如果我以这种方式更改代码怎么办:

JavaScript的:

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

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>
Run Code Online (Sandbox Code Playgroud)

Anu*_*rag 7

this已经代表用户点击的div.您不需要使用jQuery重新选择它,因为您已经有了它的引用.

简单地说,将类添加到它:

$(this).addClass('someClass');
Run Code Online (Sandbox Code Playgroud)

对于你的例子:

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

让我们说如果你需要选择一些元素id并id恰好是一个变量,那么这个语法是无效的:

("$(\"#"+whichDiv+"\")").addClass();
Run Code Online (Sandbox Code Playgroud)

在这里,您正在创建一个字符串,然后尝试addClass在字符串上调用该方法,该方法不存在.也addClass没有任何参数调用是没用的,因为你想传入类名来添加到这里的元素.

$("#" + whatid).addClass('someClass');
Run Code Online (Sandbox Code Playgroud)