Javascript在不使用ID,Name等的情况下将元素插入到下一个表td中

时间:2014-01-27 12:59:16

标签: javascript jquery html dom html-table

我希望在之前的td输入中有一些keyup后输入一些<p>NewText</p>到下一个td。例如,如果输入文本字段位于表的第二个td中,那么在我创建一些键入后,表格的第三个td中会出现一些<p>NewText</p>。我想在没有ID,名字,类等的情况下完成它。

我的代码中的问题是<p>NewText</p>在第二个和第三个td之间插入。我不知道怎么把它放进第三个td。

enter image description here

HTML:

<table>
    <tr>
        <td>Text</td>
        <td><input type="text" onkeyup="scripts(this)" /></td>
        <td></td>
        <td></td>
    </tr>
</table>

使用Javascript:

function scripts($this) {
    $this.parentNode.nextSibling.innerHTML = '';

    if ($this.value !== '') {
        $("<p>NewText</p>").insertAfter($this.parentNode);
    };
};

2 个答案:

答案 0 :(得分:2)

首先:不要调用函数function。一旦你修复了:

jQuery的closest可以带你到第一个匹配的祖先元素,然后next可以带你从那里到下一个兄弟。所以:

function someName(rawElement) {
    var $el = $(rawElement);
    $el.closest('td').next().html("This markup will replace the content of the next cell");
}

(注意第一行,因为你传递给函数的不是jQuery对象,它是一个DOM元素。)

答案 1 :(得分:0)

一个名为“function”的函数? Errr。

无论如何,这应该只是起作用:

function function($this) {
    if ($this.value) $this.parentNode.nextSibling.innerHTML = "<p>NewText</p>";
};