2012-05-14 52 views
2
創建字符串

所以我有一個看起來像這樣的列表:從多次點擊

<ul class="clearfix alignleft"> 
    <li id="cat-1"><a href="#All">All</a></li> 
    <li id="cat-5"><a href="#Mobile">Mobile</a></li> 
    <li id="cat-4"><a href="#Webdesign">Webdesign</a></li> 
</ul> 

因此,當用戶點擊mobile,我帶屬性HREF,和切片'#',但在此之後,用戶點擊時在webdesign讓我們說我需要創建一個字符串像.Mobile,.Webdesign等on..so我要添加到字符串....當一個錨的用戶點擊我如果加個班.clicked

隱而不宣的人可能嗎?

回答

3

嘗試像下面,

標記

<ul class="clearfix alignleft" id="trackClick"> <!-- added trackClick --> 
    <li id="cat-1"><a href="#All">All</a></li> 
    <li id="cat-5"><a href="#Mobile">Mobile</a></li> 
    <li id="cat-4"><a href="#Webdesign">Webdesign</a></li> 
</ul> 

JS:

var tracker = []; 
$('#trackClick').find('a').click(function() { 
    tracker.push($(this).attr('href').replace('#', '.')); 
    //or tracker.push('.' + $(this).attr('href').substring(1)); 
}); 

console.log(tracker); // will print clicked href .Mobile,.Webdesign 

DEMO

+0

'this.href'比'$(本).attr( 'href' 屬性)' – pomeh

+0

@pomeh'更有效this.href '會返回完整的URL,所以如果你想獲得href屬性中的內容,你需要使用'$(this).attr('href')'。或使用'.getAttribute'(' –

+0

是的,你是對的,對不起,那麼'this.getAttribute('href')'會更有效率,對嗎? – pomeh

1
var classStr = ''; 
$('ul a').on('click', function(e) { 
    e.preventDefault(); 
    classStr += (classStr.length > 0 ? ', ' : '') + this.href.replace('#', '.'); 
}); 

你可以把它放在一個數組也@vega顯示:

var classStr = []; 
$('ul a').on('click', function(e) { 
    e.preventDefault(); 
    // $.unique() to make sure that no multiple instance of href 
    $.unique(classStr.push(this.href.replace('#', '.'))); 
}); 
console.log(classStr.join(', ')); 
+0

也許更簡單''(「ul a」)'。 – VisioN