0

我们如何通过 jquery 比较(通过类比较)2 ul listitems,我可以通过循环来做到这一点,但我想要最好的方法来做到这一点(使用一些 jquery 方法)?

4

2 回答 2

3

嗨,像这样的人: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/>

​
于 2012-05-26T10:41:39.453 回答
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();
于 2012-05-26T10:38:00.077 回答