jQuery获取表行中每个td的表头文本

时间:2014-04-08 14:38:14

标签: jquery html-table

正如您在下面的小提琴中所看到的,我正在动态创建一个表,其中包含多个用于列标题的tr。我需要获取所选行中每个td的标题中的文本。

http://jsfiddle.net/michaela_elise/Gj6L5/

每个有效标题都有一个" isHeader"为了区别于其他人。

这是在单击有效td时调用的函数:

function serializeAny($trow)
    {
        var ret = [];
        $.each( $trow.children(), function() {  
            var pos = $(this).index();
            var header = $allCells.filter(":nth-child(" + (pos+1) + ")").hasClass("isHeader");
            alert(header.text());
            ret.push( encodeURIComponent( header.text() ) + "=" + encodeURIComponent( $(this).text() ) );
        });

        return ret.join("&").replace(/%20/g, "+");
    }

' var标题'应该得到那个具有类' isHeader'的列的标题。

我对此很陌生,我不确定如何遍历它。

例如,如果我点击标有' 1234'的行,我希望该功能返回'输入,删除,标记,内容,人物,地点,"跳过这一列(不是头类),IH,A,电子邮件,.....'。

2 个答案:

答案 0 :(得分:1)

您在代码中使用isHeaderisheader,修复其中任何一个并在下面的类选择器中使用它

function serializeAny($trow) {
    console.log('serializeAny');
    var $headers = $('#processOutput, #heads');
    var ret = $trow.children().map(function () {
        var $this = $(this),
            pos = $this.index();
        var header = $headers.find("th:nth-child(" + (pos + 1) + ").isHeader");
        return header.length ? encodeURIComponent(header.text()) + "=" + encodeURIComponent($this.text()) : undefined
    }).get();

    return ret.join("&").replace(/%20/g, "+");
}

演示:Fiddle

答案 1 :(得分:0)

我会尝试一下:

var header = $('#heads').children(':eq('+$(this).index()+')');