0
4

2 回答 2

3

使用 jQuery 非常简单:

$('div#data-table_paginate a').wrap('<li>');

注意到你<span>在你中间,那么你需要使用.children()没有选择器的。

如果你想用下面的纯 javascript 来做这件事,这是一个适用于 1 级孩子的工作解决方案,它是可重构的。

var nodes = document.querySelector('#data-table_paginate');
var newHTML = "<ul>";
for(var i = 0; i < nodes.children.length; i++) {
    if(nodes.children[i].children.length > 0) {
        for(var j = 0; j < nodes.children[i].children.length; j++) {
            newHTML += "<li>"+ nodes.children[i].children[j].innerHTML +"</li>";
        }    
    } else {
        newHTML+="<li>"+nodes.children[i].innerHTML+"</li>";
    }
}
newHTML += "</ul>";
nodes.innerHTML = newHTML;

在这里做了一个小提琴

我已经更新了我的解决方案以适合您的规格。注意:使用 jQuery 会阻碍很多你需要的嵌套代码。

于 2013-06-10T19:40:12.160 回答
1

您可以使用包装功能:

$(function() {
    $('#data-table_paginate a').wrap('li');
});

这将找到data-table_paginatediv 中的所有锚点并将它们包装在一个li元素中。

于 2013-06-10T19:39:43.303 回答