JQuery:如何提取元素并在提取的元素之前插入文本/元素?

时间:2010-01-13 07:59:18

标签: jquery insert

喂,

我很感激你的建议。给出以下代码段:

<div id="parent"><div id="child">ChildText<span id="subchildtext"><b>SubChildText</b></span></div></div>

我想:

  1. 提取span元素
    ==&GT; var span = $("#child").find("span");

  2. 添加一些文字(“foobar”)和一个新的HTML元素(“<b> foorbarbold </b>”) ==&GT; span.insertBefore("foobar<b>foobarbold</b>")

  3. 将新元素“插入”父级(ID = PArent元素)
    ==&GT; $("#parent").html(span);

  4. 结果应为:<div id="parent">foobar<b>foobarbold</b><span id="subchildtext"><b>SubChildText</b></span></div>

    但那不起作用。我无法将新内容插入到提取的元素中。我怎么能做到这一点?

    非常感谢! 添

3 个答案:

答案 0 :(得分:0)

我不知道jQuery,但这里是你用javascript

的方式
var span = document.getElementById("subchildtext");
var newBold = document.createElement("b");
newBold.appendChild(document.createTextNode("foobarbold"));
span.insertBefore(newBold, span.firstChild);
span.insertBefore(document.createTextNode("foobar"), span.firstChild)

答案 1 :(得分:0)

要设置父级的html,请尝试:

$("#parent").html(span.html());

但您可能会发现需要删除原件,在这种情况下您可能需要。

span.remove();

但是,以下内容可能会在一行中对您有用(我没有对它进行过测试,但是它在右边的行中)

span.appendTo("#parent");

或者,如果你想在开始时

span.preprendTo("#parent");

您也可以找到一些链接:

http://docs.jquery.com/Manipulation/prependTo

http://docs.jquery.com/Manipulation/remove

希望这有帮助

答案 2 :(得分:0)

试试这个:

$('#parent').html($('#subchildtext')).prepend('foobar<b>foodbarbold</b>');