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

Jquery 获取DIV标记的ID,然后相应地向DIV添加一些CSS样式,jquery,Jquery,我使用jQuery获取DIV标记的ID,然后向DIV添加一些CSS样式 照着 我是jQuery新手,我不确定这是否是一个好方法: JavaScript: $(".myClass").click(function(e){ var whatid = $(this).attr('id'); var whichDiv = "divName"+whatid; ("$(\"#"+whichDiv+"\")").addClass(); } $(".myClass").clic

我使用jQuery获取DIV标记的ID,然后向DIV添加一些CSS样式 照着 我是jQuery新手,我不确定这是否是一个好方法:

JavaScript:

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

HTML:

这已经表示用户单击的div。您不需要使用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');
});
假设您需要按id选择某个元素,而id恰好是一个变量,则此语法无效:

("$(\"#"+whichDiv+"\")").addClass();
这里,您正在创建一个字符串,然后尝试调用字符串上的addClass方法,该字符串不存在。不带任何参数也调用addClass是没有用的,因为您希望在此处传入要添加到元素的类名

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

以下是完整的示例:

<!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>

如果选择器实际上是divName加上您单击的元素ID的串联,请尝试以下操作:

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

要匹配您提供的HTML,请执行以下操作,但请注意,它可能无法工作,因为以数字开头的ID无效


相反,您应该通过以字母开头使ID有效,并调整成对元素ID以匹配更改。

这就是全部代码吗?divName来自哪里,为什么您认为您需要它?@Kobi抱歉,我正在自学JQUery,我突然想到了这个问题。@kwokwai-很高兴它对我有帮助。干杯
<!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>
$(".myClass").click(function(e){
    $("#divName" + this.id).addClass('someClassName');
}
$(".myClass").click(function(e){
    $("#myTest" + this.id).addClass('someClassName');
}