如何使用jQuery在div中生成ID为'blurb'的段落?

时间:2012-01-16 03:33:50

标签: javascript jquery

我的网页上有一个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方式也是如此。谢谢!

3 个答案:

答案 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);