在jquery中比较2 ul列表项?

时间:2012-05-26 10:33:38

标签: jquery

我们如何通过jquery比较(通过类比较)2 ul列表项,我可以通过循环执行此操作,但我想要最好的方法(使用一些jquery方法)?

2 个答案:

答案 0 :(得分:3)

Hiya喜欢这样的男人:http://jsfiddle.net/AzZHy/

您将创建一个主列表,然后进行比较,

如果这不是你想要的,请不要拒绝投票。

jquery代码

var master = [];

// Identify the master values.
$('ul').first().find('li').each(function(index,value) {
    master.push($(this).text());
});

$('ul:not(:first)').each(function(ulIndex) {
    $(this).find('li').each(function(index) {
        if(master[index] != $(this).text()) {
            $(this).addClass('mismatch');        
        }  
    });
});​

<强> HTML

<ul>
    <li>hulk</li>
    <li>ironman</li>
    <li>bazinga</li>
    <li>thor</li>
    <li>rambo</li>
</ul>
<br />
<ul>
    <li>hulk</li>
    <li>ironman</li>
    <li>Zooyork</li>
    <li>thor</li>
    <li>rambo</li>
</ul>
<br/>

​

答案 1 :(得分:1)

var list1 = $(...), list2 = $(...);

要比较长度,请使用list1.lengthlist2.length 要比较元素的文本,最简单的方法可能是将它们存储在数组中:

var texts1 = list1.children('li').map(function() { return $(this).text() }).get();
var texts2 = list2.children('li').map(function() { return $(this).text() }).get();