Javascript 如何获取对动态添加元素的引用?
以下代码旨在将Javascript 如何获取对动态添加元素的引用?,javascript,jquery,html,Javascript,Jquery,Html,以下代码旨在将元素插入已存在的元素之前的
元素插入已存在的元素之前的
中,然后在新插入的元素下方插入一个表(以便该表显示在两个
元素之间):
$(“#para1”)。在(“”+printDate+“
”)之前;
美元(“#para2”)。在(“)之后;
但是,当我尝试向新插入的表中添加一行时,如下所示:
$("#table").prepend("<tr><td>asdfasf</td></tr>");
$(“#表”).prepend(“asdfasf”);
该行总是添加到位于id为para2的
元素前面的另一个表(具有不同的id)。这种奇怪行为的原因可能是什么
这是DOM检查器的快照。id为21-09-2014
的表格如何位于两个不同的位置
编辑:
你们都是对的。我之前添加了一个具有相同id的空表,并认为它不在那里,因为我看不到它。那小子花了我5个小时的工资 将条目添加到其他表中的主要问题可能是页面中存在重复的ids
。如果这里有重复的id,id选择器将返回带有id的第一个元素
要获取对新添加元素的引用,请分别使用and而不是and
var $para = $("<p id = 'para2'>" + printDate + "</p>").insertBefore('#para1');
var $table = $("<table id = 'table'></table>").insertAfter('#para2');
$table.append("<tr><td>asdfasf</td></tr>");
var$para=$(“”+printDate+“
”)。插入之前('#para1');
var$table=$(“”)。insertAfter('#para2');
$table.append(“asdfasf”);
您要在表前加前缀吗?你不应该使用
$('#table tr:last').after('<tr><td>asdfasf</td></tr>');
$('#table tr:last')。在('asdfasf')之后;
相反
或者:第一次和之前?
$(“#para1”)。在(“具有id='para2'的新p元素
”)之前;
$(“#para2”)。之后(“第二行”);
$(“#表”).prepend(“新行内部#表,它将是第一行”)
已存在的具有不同id的表
第1段
否,该表具有不同的id重复id应该是发生这种情况的唯一原因。你能在JSFIDLE或其他东西中重现这个问题吗?如果没有HTML(JSFIDLE或代码片段
),这主要是猜测,因为你的代码肯定会工作(如果你在页面上没有重复的ID)。编写代码时,这是不可能的,是你正在使用的实际代码吗?不要在“=”周围使用空格登录HTML attributes.OP表示它们有不同的ID。我希望它显示为表中的第一行。这样可以吗?试着tr:首先,在这之前,这应该是答案。使用append无法将行正确添加到表中。您可以执行if:if($('#table tr')。长度==0{($(“#table tbody”))。appendTo($('#table tbody'))
$('#table tr:last').after('<tr><td>asdfasf</td></tr>');