关于jQuery选择器的问题

时间:2011-05-27 15:01:03

标签: jquery jquery-selectors

<div id="foo">yyy<span>xxx</span></div>

我的html具有上述结构。我想在yyy位置插入一些内容。你能告诉我它的选择器是什么吗? 我会将该选择器传递给某个函数,该函数将执行$(selector).html('content')

5 个答案:

答案 0 :(得分:6)

var s = $('#foo span');
$('#foo').text("hello").append(s);

演示:http://jsfiddle.net/uTNTF/

或者,如果更新HTML是一个选项,那么简单地将yyy包裹在<span>中将使您的生活变得更加简单:

$('#foo span:first-child').text("hello");

演示:http://jsfiddle.net/uTNTF/1/

答案 1 :(得分:2)

您可以使用jQuery .prepend()函数(将参数指定的内容插入到匹配元素集中每个元素的开头):

$('#foo').prepend('some content');

答案 2 :(得分:1)

yyy应该重新插入一个块元素,以便您轻松发现它,否则我看不到除了hacky之外的其他选项:

$('#foo').html($('#foo').html().replace('yyy','')).find('span').before('new content');

实例:http://jsfiddle.net/MTu6c/

答案 3 :(得分:0)

我认为没有一个魔术选择器可以在容器中选择一些纯文本而不是所有内容。

如果您想将'yyy'替换为'some content',您可以执行以下操作:

$('#foo').html('some content' + $('#foo span').html())

答案 4 :(得分:0)

您发布的标记的“yyy”部分在DOM中表示为文本节点。 jQuery没有任何方法或选择器来隔离文本节点,但DOM确实如此。

请参阅此处(您的问题可能会被视为此问题的副本): How do I select text nodes with jQuery?