addClass / removeClass

时间:2012-10-03 09:58:02

标签: jquery

{我希望能够在正文中添加一个类,然后删除该类,并在点击'a tag'html元素时将其替换为新类,这是我已经得到的,添加了class,每次单击都会添加另一个类:

这可以通过检查一个选定类而不是.click

的链接来完成

HTML:

<ul id="dates">
<li><a href="#" class="selected">link1</a></li>
<li><a href="#">link1</a></li>
<li><a href="#">link1</a></li>
<li><a href="#">link1</a></li>
</ul>

jQuery的:

$('ul#dates li a.selected').bind(function() }
            var htmlStr = $(this).html();
            $('body').attr('class', htmlStr);
        });

5 个答案:

答案 0 :(得分:2)

每次都完全替换class属性:

$('ul#dates li a').click(function() {
    var htmlStr = $(this).html();

    if( $(this).is('.selected') ) {
        $('body').attr('class', htmlStr);
    }
});

答案 1 :(得分:0)

你想要Jquery toggleClass方法

http://api.jquery.com/toggleClass/

if ($(this).is(".foo"))
{
   $(this).toggleClass("foo", false);
   $(this).toggleClass("bar", true);
}
else
{
   $(this).toggleClass("foo", true);
   $(this).toggleClass("bar", false");
}

答案 2 :(得分:0)

您可以尝试在您的身体上设置data-X属性,而不是类,例如$('body').attr('data-clicked-link-html-string', htmlStr);

答案 3 :(得分:0)

请检查:

$(document).ready(function(){
    $('ul#dates li a').click(function() {
        var htmlStr = $(this).text();
        $('body').attr('class', '').addClass(htmlStr);
    });
});

答案 4 :(得分:0)

jquery中的addclass方法,在你的css中使用一个预定义的类,只有类名是可以接受的, var htmlStr = $(this).html(); 这个得到像INNERHtml属性的html抓取元素中的所有html内容。 所以你最好宣布一个这样的类:

.aClass {
float:left;
}

并在jquery中执行:

$('body').addClass('aClass');