2017-09-15 26 views
2

getElementsByClassName方法问题,下面的代码是一个例子 - 我有我想激活具有相同功能的页面上的多个链接,但我只能得到页面上的第一个链接激活使用GetElementsByClass功能。通过多条链路

<script> 
    window.onload = function() { 


     var a = document.getElementsByClassName('watchlist')[0]; 

     a.onclick = function() { 

      $.post("watchlistinsert.php?symbol=AAPL&price=25&watchlistgroupid=1"); 

      return false; 
     } 
    } 
</script> 
<body> 
<a class="watchlist" href="##">linky</a> 
<a class="watchlist" href="#">linky1</a> 
<a class="watchlist" href="#">linky2</a> 
<a class="watchlist" href="#">linky3</a> 
</body> 
+1

'getElementsByClassName'完全正是你想要的。这听起来像你实际上想要一个循环。 – SLaks

+0

是的,它适用于第一个链接。我的问题是如果有办法让他们都工作。你会把这个循环放在哪里?如何? –

+0

你希望他们都链接到相同的? – baao

回答

3

getElementsByClassName给你一个包含所有匹配元素的数组。所以,你应该通过他们,循环是这样的:

var elements = document.getElementsByClassName('watchlist'); 
for(var i=0; i<elements.length; i++){ 
    elements[i].onclick = function() { 
     $.post("watchlistinsert.php?symbol=AAPL&price=25&watchlistgroupid=1"); 
     return false; 
    } 
} 

另外,我假设你使用,因为$.post的jQuery的。如果是这样,你可以这样做:

$('.watchlist').click(function(){ 
    $.post("watchlistinsert.php?symbol=AAPL&price=25&watchlistgroupid=1"); 
    return false; 
}); 
+0

谢谢!我一直在这个功能上跳舞了一个小时....并且它是jQuery之一:) –

+0

当然,没问题:) – Piyin