我的网页上有一个div元素,ID为“map”,其中包含指向Google内部的链接。
<div id="map">
<a href="http://google.com">Google</a>
</div>
我想使用jQuery在ID为“blurb”的链接之后生成一个段落,因此类似于Javascript生成的HTML是
<div id="map">
<a href="http://google.com">Google</a>
<p id="blurb"></p>
</div>
我一直在尝试
$('#map').append('p').attr('id', 'blurb');
无济于事。
我对Javascript持开放态度,但非jQuery方式也是如此。谢谢!
答案 0 :(得分:5)
这应该有效:
$('#map').append('<p id="blurb"></p>');
你的方法是正确的一般想法,但只是附加文本'p'而不是标记<p>
并且id没有设置在正确的对象上,因为jQuery链接的方式适用于{ {1}}。
如果你想出于某种原因以编程方式分配id,那么这样做可能更容易:
.append()
答案 1 :(得分:3)
首先,设置所有属性,然后追加。
$('<p>').attr('id', 'blurb').appendTo('#map');
答案 2 :(得分:3)
您的代码无法正常工作有两个原因。首先,追加可以采用文字,您必须使用标记(<p>
)而不是p
来区分文本和HTML。另一个原因是链接意味着jQuery的append函数将返回它被调用的jQuery对象。在这种情况下,对象引用您的地图元素。因此,当您设置id时,您设置了map div的id,而不是新创建元素的id(假设<p>
错误已修复)。你也应该使用prop来设置id而不是attr,但两者都可能适用于id。以下是一些示例代码:
jQuery的:
$('<p>').appendTo('#map').prop('id', 'blurb');
普通Javascript(更快,但不太清晰):
var pel = document.createElement('p');
pel.id = 'blurb';
document.getElementById('map').appendChild(pel);