从<li>获取文字&amp;检查重复和&amp; .append it ... by jQuery </li>

时间:2012-05-15 11:37:34

标签: jquery text get duplicates

HTML:

<li>Tue, 15th May 2012 10:11</li>
<li>Tue, 15th May 2012 10:12</li>
<li>Tue, 15th May 2012 10:13</li>
<li>Tue, 15th May 2012 10:14</li>
<li>Tue, 15th May 2012 10:15</li>
<li>Tue, 16th May 2012 21:08</li>
<li>Tue, 16th May 2012 21:07</li>
<li>Tue, 16th May 2012 21:06</li>
<code></code>

jQuery:

$("li").each(function () {
    words = $(this).text().split(' ');
    xxx = words[1]+" "+words[2]+" "+words[3]+",";
    $("code").append(xxx); 
});

我现在来到这一步,但我不知道如何检查重复日期并附加唯一日期

演示:http://jsfiddle.net/4kvUy/

3 个答案:

答案 0 :(得分:2)

一种选择是使用:contains选择器。

$("li").each(function() {
    words = $(this).text().split(' ');
    xxx = words[1] + " " + words[2] + " " + words[3] + ",";
    $("code:not(:contains(" + xxx + "))").append(xxx);
});​

DEMO: http://jsfiddle.net/4kvUy/2/

答案 1 :(得分:2)

这样做: -

if ($("code:contains('"+xxx+"')").length == 0)
   $("code").append(xxx);

编辑:

要处理逗号,请尝试以下方式: -

if ($("code:contains('"+xxx+"')").length == 0){
    if ($("code").text() == '')
        $("code").append(xxx);
    else
        $("code").append(","+xxx);
}

EDIT2:

要处理此类输出,请尝试以下方式: -

$("li").each(function () {
    words = $(this).text().split(' ');
    xxx = words[1]+" "+words[2]+" "+words[3];
    if ($("code:contains('"+xxx+"')").length == 0){     
        if ($("code").text() == '')         
            $("code").append('["'+xxx);     
        else         
            $("code").append('","'+xxx); 
    }
});
$("code").append('"]');

<强>输出:

["15th May 2012","16th May 2012"]

答案 2 :(得分:1)

尝试this on jsfiddle,它似乎有效。