在jQuery中获取所选单元格的值

时间:2011-05-24 07:59:06

标签: jquery html-table cell

我正在使用一些免费赠送脚本来突出显示表格单元格。它可以点击多次,所以我可以一次选择多个单元格。当我点击单元格时,我想要检索它们的值并显示在下面的输入中,这样我就可以在完成高亮显示时发布它。我的脚本如下所示:

function displayVals(item) {
        var multipleValues = $(this).html() || [];
        $("p.info").html("<b>Multiple:</b> " + multipleValues.join(", "));
        alert($(item).html()); 
        $("#clicked").val(multipleValues.join(", "));
    }

    $(document).ready(
        function(){
            $('#table3').highlight('td');
            $('#table3').highlight('td', 'highlight-selected', 'mousedown');
            $('#table3 td').click(function() { 
                displayVals(this);
            });

        }
    );

displayVals函数中的这个示例中,我使用alert来显示我现在选择的单元格。它显示没有问题,但在名为clicked的输入中没有任何粘贴,p.info中没有任何内容。

如果有人能帮助我,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

在点击事件this内仅指向点击的元素而不是所有tds。

$('#table3 td').click(function() { 
     displayVals(this);
});

.html()会返回一个字符串,因此您不需要加入,而是使用this代替item

function displayVals(item) {
    var multipleValues = $(item).html() || '';
    $("p.info").html("<b>Multiple:</b> " + multipleValues);
    alert($(item).html());
    $("#clicked").val(multipleValues);
} 

列出所有多个值

function displayVals(item) {
  var multipleValues = [];
  $(item)
    // Search the parrent table
    .closest('table')
    // Get any highlight selected td
    .find('td.highlight-selected')
    // Iterate and add the html to multipleValues
    .each(function(){ multipleValues.push($(this).html()) })


    $("p.info").html("<b>Multiple:</b> " + multipleValues.join(", "));
    alert(multipleValues.join(", "));
    $("#clicked").val(multipleValues.join(", "));

}