2011-02-26 69 views
2

我怎么可以通过在一个div使用jQuery或全部标签元素只是一个JavaScript DOM遍历一个div所有标签元素使用jQuery

这里是例如HTML循环:

<div id="pagination"> 
    <label class="noLink">First</label> 
    <label class="noLink">Previous</label> 
    <label class="withLink" onClick="paginateTo('next')">Next</label> 
    <label class="withLink" onClick="paginateTo('last')">Last</label> 
</div> 

我试图在这里做的是删除onClick事件,并将withLink的值更改为noLink。我试图使用JavaScript DOM和jQuery来循环所有标签,但仍然没有运气。我知道有这个类似的问题,但找不到适合我需求的问题。请帮我解决一下这个。谢谢!

回答

3

jQuery非常微不足道。看起来像:

$('#pagination .withLink').toggleClass('withLink noLink').removeAttr('onclick'); 

参考:.toggleClass()removeAttr()


与香草的Javascript略低琐碎:

var lnks = document.getElementById('pagination').querySelectorAll('.withLink'); 
for(var i = 0, len = lnks.length; i < len; i++) { 
    lnks[i].removeAttribute('onClick'); 
    lnks[i].className = lnks[i].className.split(/\s/).filter(function(elem) { 
     return elem !== 'withLink'; 
    }).join(' '); 
} 

参考:.querySelectorAll().filter()

做个洁具的香草JavaScript仍然有浏览器的限制。它需要Javascript 1.6所以你需要IE8 +。

+0

'querySelectorAll'只能用于IE8 +,不幸的是,对于更老的IE,您将手动删除'getElementsTagName('*')'和'className'。 – 2011-02-26 09:08:33

+0

jQuery为我工作,我从来没有想过这很简单。我需要在大多数浏览器中运行我的脚本,不幸的是包括ie6。也许如果我有很多时间,我会尽量使用JavaScript。非常感谢你的答案。 – ace 2011-02-26 09:15:40