jquery插入html不起作用

时间:2010-01-09 17:37:25

标签: jquery html insert html-table

我有一张表,我希望在下一行的td中插入html。 我在下面粘贴了一行。

<tr class="content">
    <td align="center">
      <a class="version" href="theurl">click here to update the td in the row below</a>
    </td>
    <td align="left">col 2</td>
    <td align="left">col 3</td>
    <td align="left">col 4</td>
    <td align="left">col 5</td>
    <td align="left">col 6</td>
</tr>
<tr class="version" style="display: none;">
    <td colspan="6"></td>  <-- this is where i want to insert the new html in.
</tr>

我的jquery脚本看起来像这样。

$("a.version").click(function () {
    var sLink = $(this).attr("href"); <-- this gets the link to retrieve data from
    var nexttr = $(this).parent().parent().next(".version"); <-- gets the next tr
    var nexttrtd = $(this).parent().parent().next(".version td:first"); <-- gets the first td in the next tr. alerting the colspan displays 6 (which is correct)

    nexttrtd.html("hello world"); <-- this wont insert the text in the td.
    nexttr.css("display", "");

    return false;
});

现在问题是,为什么hd不显示在td中?我试过追加,innerHTML =“bla”,这也无济于事。

认为我按照手册做事,但无法弄清楚出错的地方。

任何想法?

5 个答案:

答案 0 :(得分:2)

next()可能会失败,因为它会尝试查找当前td:first旁边的tr元素。试试这个:

$("a.version").click(function () {
    var sLink = $(this).attr("href"); <-- this gets the link to retrieve data from

    var nexttrtd = $(this).closest('tr').next('.version').find('td:first');
    nexttrtd.html("hello world"); // This will insert "hello world" to the td

    return false;
});

我减少了一些似乎没有做任何事情的冗余代码。奇怪的是,您选择了nexttr但是从一开始就重新搜索了nexttrtd。你可以在援助中使用nexttr元素:

var nexttr = $(this).closest('tr').next(".version"); // gets the next tr
var nexttrtd = nexttr.find('td:first'); // Gets the first td in that row

答案 1 :(得分:2)

  

html不会将sData字符串插入但是IN IN STEAD OF。

使用.append(),而不是.html()!

答案 2 :(得分:0)

我尝试了你的代码,它对我有用。 jQuery是否正确包含在页眉中,没有任何拼写错误?我用

测试了它
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

答案 3 :(得分:0)

确保您的jQuery脚本在页面上执行。如果不是,则永远不会为您的标签添加点击事件。

答案 4 :(得分:0)

现在有一部分工作了。在下一个tr中得到td的关键如下:

var nexttrtd = $(this).parent()。parent()。next(“tr.version,td”);   $ .get(sLink,function(sData){    nexttrtd.html( “” + SDATA + “​​”);    nexttr.css(“display”,“”);   });

(“tr.version,td”中的逗号)现在的事情是html没有插入sData字符串而是IN IN STEAD OF。

这就是为什么我通过插入“过去但确定这不是它应该是什么样的或者是什么来解决这个问题的原因?

有没有正确的方法呢?

(追加sData但是旁边的sData也是如此。