2012-10-03 137 views
1

{我想能夠添加一個類到主體,然後刪除該類,並在點擊'a tag'html元素時將其替換爲新類,這是就我所知,添加類,每次點擊增加了另一個類:addClass/removeClass

這可以通過檢查的鏈接一類的選擇,而不是。點擊完成

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); 
     }); 

回答

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"); 
} 
0

你可以嘗試在你的身上設置而不是一類一data-X屬性,例如$('body').attr('data-clicked-link-html-string', htmlStr);

2

只需更換類屬性完全每次:

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

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

看我的反應;我會使用'data -...'屬性。 – jgroenen

+0

你不能這樣做,這將抓住元素中的所有html。 –

+0

@ProgMania是的,這就是'.html()'所做的......這就是OP所要做的,將類「link1」添加到正文,或者至少這是我的理解 – nbrooks

0

請檢查:jQuery的

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

addclass方法,使用預定義的類在你的CSS,只有類名是可以接受的, var htmlStr = $(this).html(); 這就得到了像INNERHtml屬性這樣的html抓取元素中的所有html內容。 所以你最好聲明一個類是這樣的:

.aClass { 
float:left; 
} 

和jQuery中做到:

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