我想在表中添加一行,然后将其用作DOM对象。 假设以下HTML:

<table>
  <tr class="existing-row"><td>
      <a>add new row</a>
  </td></tr>
  <tr class="existing-row"><td>
      <a>add new row</a>
  </td></tr>
</table>

我使用以下JavaScript与jQuery插入一行:

  function addNewRow(addNewRowLink)
  {
    var currentRow = addNewRowLink.closest('tr');
    currentRow.after('<tr class="added-row"><td>This is new</td></tr>');

    var newRowInDomTree = currentRow.next('tr');
    //This does not work
  }

变量newRowInDomTree包含tr.existing-row而不是tr.added-row 看来DOM树没有更新,但我没有说明原因。

有任何想法吗?

===============>>#1 票数:3 已采纳

你的代码应该可以工作,除了我看不到它是如何被调用的,所以我不知道addNewRowLink究竟是什么。

另一种方法是在创建新元素时保留对该元素的引用。 像这样:

function addNewRow(addNewRowLink) {
    var currentRow = addNewRowLink.closest('tr');
    var newRowInDomTree = $('<tr class="added-row"><td>This is new</td></tr>')
                               .insertAfter( currentRow );
    // newRowInDomTree will be the element you created
}

===============>>#2 票数:1

我认为通过使用正确的功能可以简化您正在寻找的效果:

代替:

currentRow.after('<tr class="added-row"><td>This is new</td></tr>');

你应该试试:

newRowInDomTree = $('<tr class="added-row"><td>This is new</td></tr>').insertAfter(currentRow);

我猜想你的选择( currentRow.next('tr') )是在元素实际添加到dom之前发生的。 您可以尝试侦听onloadonreadystatechange事件,以查看它是否稍后被触发。

===============>>#3 票数:0

你这样做怎么样?

$(".existing-row a").click(function() {
 newRow = $(this).parent.after('<tr class="added-row"><td>This is new</td><tr>');
});

===============>>#4 票数:0

给表提供一个id。

< table id="me">

var iHtml = ' < tr class="added-row">< td>This is new asdasdasd< /td>< /tr>' ;

$('#me tr:last').after('iHtml ');

  ask by Daniel Peñalba translate from so

未解决问题?本站智能推荐:

4回复

在jQuery中选择变量中而不是当前DOM中的内容?

我有一个使用jQuery的ajax函数,该函数定义了要调用的错误函数。 当服务器上发生错误时,此错误功能将运行。 在“ jqXHR”中传递的变量之一包含一个名为responseText的属性。 我想将此响应文本转储到页面上的div中,但是响应文本包含格式完整的HTML文档。 有什么方法可
1回复

jQuery选择器在添加的dom元素上没有动态表现

我正在尝试获取一个动态模态以与输入字段一起显示,并在该模态添加到DOM的每次迭代中检索输入的值。 当前,在第一次迭代中为输入分配了正确的值,并为每个后续迭代保留了该值。 例如,当我在第一次调用模态时在输入中输入“ 3”时,行为是预期的。 但是,在第二次或之后的任何时间创建模态,并且输入
1回复

在Jquery中添加DOM时读取HTML

虽然阅读时碰巧看到了这段代码。 ajax调用的响应就像这样的简单html: 令他惊讶的是,他们能够检索到这样的值: 我的印象是,如果将jQuery添加到DOM中,jQuery只能读取这些值。 有人可以分享一下这种行为。 我在这里理解错了什么? 注意:它没有在D
2回复

使用jquery从html表中选择第二行

我使用以下jQuery函数突出显示Html表中的行(使用bg color)。它工作正常。我的问题是如何从表中选择第二行.``highlight''是一个类 这里的姓名,年龄作为第一行出发 。即标题。 下一个测试test1是tabe的元素。如果我使用那个jquery函数,则title(n
2回复

复杂的DOM选择jQuery

我的DOM中有这样的结构: 我想选择所有的ul子级(它包括元素,除了名为“ choose”的类外。我尝试了以下操作: 但是我没有成功
1回复

JQUERY DOM:选择在Dom加载后创建的元素

我正在一个项目中,当调用一个函数时,我需要更改某个类的所有选择输入的值。 问题在于,首次加载dom时,某些选择输入不存在,它们是通过Javascript动态创建的。 该功能适用​​于选择加载页面时存在的所有选择输入,但不适用于动态添加到dom的任何选择输入。 我了解使用.on进行事
2回复

在JQuery中动态创建的元素不断添加到DOM

这是我的问题: 我拥有所有JQuery代码的母亲,这些代码可以动态生成JQuery UI对话框,然后在其上绑定一些事件和一些代码。 问题在于此动态元素会不断添加到我的DOM并阻止javascript的执行。 这是代码: 在DOM方面,我从一个简单的按钮开始: 当我第
2回复

jQuery中的超时更新Dom?

假设我要更改图片来源onClick并进行一些计算。 现在发生的是,函数退出时源发生了变化。 (Dom忙吗?) 我怎样才能使图像源立即更新,然后函数进入while循环? HTML: JS: 这是JSFiddle。
1回复

如何在jQuery中实现DOM目标?

因此,在JS中,我会做类似的事情。 然后以“ dropItem [0]”或forEach循环为目标。 现在,我也在尝试在jQuery中执行此操作。 通过执行以下操作: $("p").click(function() { var dropwDown = $(this).
1回复

使用jQuery在HTML dom中遍历

我有一个基本的查询。 这是代码的一部分。 现在,如果我这样查询div id =“ something” 我想它必须更改class5 ..span的html内容,但实际上它没有发生,因此任何帮助都是巨大的帮助。谢谢