1

这是我的 JQuery 代码:

$(document).ready(function () {
    $("ul.navbar").on("click", "li", function() {
        $(this).find("h2").css("color: pink");
        alert($(this).text());
        alert($(this).find("h2").text());
    });
});

单击会正确生成警报,但文本的颜色不会改变。我也试过.addClass()了,这也行不通。有任何想法吗?我仔细阅读了很多其他类似的问题,但没有发现它们有帮助,我是 Javascript 的真正新手,但仍然卡住了。

4

6 回答 6

3

您使用.css()不正确-

应该是这样的——

$(this).find("h2").css("color","pink");

API ---> http://api.jquery.com/css/

于 2013-07-23T11:53:21.517 回答
2

改变这个:

$(this).find("h2").css("color: pink");

对此:

$(this).find("h2").css("color", "pink");
于 2013-07-23T11:54:26.453 回答
2

JQuery css 函数有两个参数,你用错了。

正确的参数如下

$(this).find("h2").css("color" ,"pink");
于 2013-07-23T12:02:09.723 回答
1

或这个:

$(this).find("h2").css( {color: "pink" } );
于 2013-07-23T11:56:30.373 回答
1

jQuery 的 CSS 函数接受两种样式的参数:

  • 作为单个名称/值对:

    .css('stylename' , 'value')
    

    函数调用中有两个参数,所以用逗号分隔。

    ...在这种情况下,您的代码将如下所示:

    .css('color', 'pink')`
    

    注意:两个参数都是字符串,所以必须用引号引起来。使用单引号还是双引号都没有关系。

  • 作为包含多个名称/值对的对象:

    .css({'stylename':'value' , 'stylename':'value' , etc})
    

    一个参数,但定义为一个对象,所以用花括号括起来;每个名称/值用冒号分隔;每对名称/值以逗号分隔。

    ...在这种情况下,您的代码将如下所示:

    .css({'color': 'pink'})`
    

    和以前一样,单引号或双引号无关紧要,但请注意,由于这是一个对象结构,样式名称周围的引号是可选的(尽管并非在所有情况下,所以最好坚持始终使用它们) .

第一种语法最初是唯一可用的;后一种语法是在 jQuery 的更高版本中添加的,以允许在一次调用中设置多个样式。

如果您只更改一个样式值,那么您使用哪种语法都没有关系。如果您一次更改多个样式,那么显然最好使用第二种语法而不是使用第一种进行多次调用。

于 2013-07-23T12:54:46.637 回答
0

您的代码似乎对我有用:

$(document).ready(function () {
    $("ul.navbar").on("click", "li", function() {
        $(this).find("h2").css("color","pink");
        alert($(this).text());
        alert($(this).find("h2").text());
    });
});

jsFiddle

您使用的是哪个 jQuery?

于 2013-07-23T12:35:49.633 回答