我正在动态生成div并希望通过html()/ text()更改其内容,但它不起作用.
这是代码:
var div = '<div class="ps_album"><img alt="" src="images/1px.gif" class="thmb"><div class="ps_desc"><h2>title</h2></div></div>';
$(div).find('.ps_desc').html('<h1>Hello</h1>');
$(div).appendTo('body');
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,第3行即
$(div).find('.ps_desc').html('<h1>Hello</h1>');
Run Code Online (Sandbox Code Playgroud)
不工作..为什么?
Poi*_*nty 12
问题是你正在重新评估$(div).对尚未添加的DOM片段进行操作的第一行不会更新字符串值"div".因此,第二次创建时,$(div)您将重新开始使用原始片段!
试试这个:
$(div).find('.ps_desc').html('<h1>Hello World</h1>').end().appendTo($('body'));
Run Code Online (Sandbox Code Playgroud)
jQuery .end()方法"弹出"前一个.find()调用的效果,所以在这种情况下它会让你回到原始导航点,这是你从字符串构建的片段.因此,随后的调用.appendTo()将作用于<div>您构建的外部,因此应该做正确的事情.
| 归档时间: |
|
| 查看次数: |
35554 次 |
| 最近记录: |