用onClick()写入tr td

时间:2015-01-14 17:43:19

标签: javascript jquery

我正在尝试使用onClick函数突出显示一个表行(在dynamicTable中),并将“test read”写入此行中单击的td [0]。

这就是我所拥有的(从net / stackOverflow中找到并调整)

$("#dynamicTable tr").click(function() {
    var selected = $(this).hasClass("highlight_tr");
    $("#dynamicTable tr").removeClass("highlight_tr");
    if(!selected)
            $(this).addClass("highlight_tr");
});

try{
    $('#dynamicTable').dataTable({
        "bPaginate": true,
        "sPaginationType": "full_numbers",
        "bLengthChange": true,
        "bFilter": true,
        "bSort": true,
        "bInfo": true,
        "bAutoWidth": true,
        "sCookiePrefix": "my_datatable_",
        "aaSorting": [[ 2, "desc" ]],
        "aoColumns": [
          { "sType": "html" },
          { "sType": "html" },
          { "sType": "string" },
          { "sType": "html" },
          { "sType": "html" },
          null
        ]
    });
} catch (e){
    errorMessage(e);
}

这可以很好地突出显示行,当然还有dynamicTable 我无法确定要添加什么以便将HTML添加到表格单元格

我已经尝试过测试

$(this).innerHTML("test read");

认为这将写入整行,但它什么都不做。 我还尝试了一些其他的东西,但没有一个可以解决我缺乏javaScript知识......

我对javaScript不是很了解,你可以看到...,但通常可以在网络的帮助下拼凑一些东西,但是这个让我头疼。非常感谢任何帮助!

3 个答案:

答案 0 :(得分:3)

jQuery没有innerHTML方法,this is a property of native DOM nodes,而不是jQuery集合。

也许你的意思是这样的?

this.innerHTML = "test read";

jQuery相当于html方法。

$(this).html("test read");

但是,如果您只想要纯文本而不是HTML,则应使用text方法。

$(this).text("test read");

为完整起见,纯文本的原生DOM节点等效为textContent

this.textContent = "test read";

答案 1 :(得分:2)

你不能直接写入tr元素,而是写入td:

$(this).find('td:eq(0)').text("test read");//writes text in first td

如果你想写tr的所有td,那么只需删除eq()方法。

您随时可以看到eqtexthtml

等文档

答案 2 :(得分:1)

或尝试

$("td:first").text("test read");

-