jQuery向动态元素添加元素

时间:2014-07-04 15:35:45

标签: javascript jquery

我有一个动态添加的div,我想追加它来响应click事件。 初始div在添加时创建并呈现,但是尝试将子div添加到第一个动态div不会呈现 - 但在控制台日志中,动态div显示已添加新div。

var newDiv = $('<div id="#newDiv'+pID+'" />').css({
    display:"inline-block",
    width:"90%",
    height:"100px",
    position:"relative"
})

var newHTML = "<div>some content</div>"

$(newDiv).html(newHTML)
$('#dynDiv'+ID).append($(newDiv))

console.log($('#dynDiv'+pID))  // displays code created successfully

所以当&#34;检查&#34;时,newDiv不会呈现也不会出现。使用调试器的DOM。

为什么第二次尝试添加动态内容失败?

3 个答案:

答案 0 :(得分:1)

我发现问题的根源是我添加动态div的父div不是唯一的 - 有多个具有相同名称的元素!这是有道理的,它会失败。感谢大家的投入。

答案 1 :(得分:0)

你还记得把它附加到什么东西上吗?请记住,jQuery可以在内存中存在不属于页面的DOM元素:

newDiv.appendTo($(parentElement));

例如。 http://jsfiddle.net/dTe73/

其他一些可能的错误:

  • #不是在$('<div id="#newDiv'+pID+'" />')
  • 中输入ID的有效字符
  • $('#dynDiv'+ID)看起来像$('#dynDiv'+pID)(或其他方式)的拼写错误
  • 不是实际错误,但多余使用$$(newDiv)绝对等同于newDiv

答案 2 :(得分:-1)

$(newDiv).html(newHTML)替换为newDiv.html(newHTML)

$('#dynDiv'+ID).append($(newDiv))$('#dynDiv'+ID).append(newDiv)

它应该有用。