1

{我希望能够在正文中添加一个类,然后删除该类并在单击“a tag”html元素时将其替换为新类,据我所知,添加类,每个点击添加另一个类:

这可以通过检查所选类的链接而不是 .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);
        });
4

5 回答 5

2

每次只需完全替换类属性:

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

    if( $(this).is('.selected') ) {
        $('body').attr('class', htmlStr);
    }
});
于 2012-10-03T10:00:41.590 回答
0

你想要 JquerytoggleClass方法

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");
}
于 2012-10-03T10:00:37.053 回答
0

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

于 2012-10-03T10:00:37.027 回答
0

请检查 :

$(document).ready(function(){
    $('ul#dates li a').click(function() {
        var htmlStr = $(this).text();
        $('body').attr('class', '').addClass(htmlStr);
    });
});
于 2012-10-03T10:01:32.673 回答
0

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

.aClass {
float:left;
}

在jQuery中做:

$('body').addClass('aClass');
于 2012-10-03T10:03:35.883 回答