如何在jQuery中向表中追加唯一的跨度?

时间:2010-10-07 02:57:05

标签: javascript jquery html

我有一个简单的问题,因为我的大脑今晚拒绝思考。

HTML

<table>
</table>

<span>2010</span>
<span>2009</span>
<span>2009</span>
<span>2009</span>
<span>2008</span>
<span>2008</span>
<span>2007</span>

的jQuery

$('span').each(function() {
        $("table").append("<tr><td>"+$(span).text()+"</span>)</td></tr>";
});

期望输出

<table>
<tr><td>2010</td></tr>
<tr><td>2009</td></tr>
<tr><td>2008</td></tr>
<tr><td>2007</td></tr>

我的想法是,我希望只显示一年不重复的内容。

我希望你能理解我。

2 个答案:

答案 0 :(得分:3)

你不能像那样进行内联字符串替换。

您需要使用JavaScript(愚蠢的双重用途)+运算符进行连接。

您也无法像这样访问span。使用this,jQuery设置为迭代的当前元素。将其包裹在$()中以再次使用jQuery。

要删除原始文件,只需在remove()上致电$(this)

var yearsUsed = [];
$('span').each(function() {
    var text = $(this).text();   

    if ($.inArray(text, yearsUsed) === -1) {
        $('table').append('<tr><td>' + text  + '</span>)</td></tr>');
        yearsUsed.push(text);
    }
    $(this).remove();
});

你还应该选择一个字符串分隔符并坚持下去 - 在这里我选择单引号(')。

答案 1 :(得分:0)

$('span').each(function() {
  $("table").append("<tr><td>" + $(this).text() + "</td></tr>");
  $(this).hide();
  });