选择HTML内容并替换

时间:2012-12-14 16:47:25

标签: jquery jquery-selectors

我对jquery有点问题。

假设我有以下声明:

var content = $('#details').html();

如何在内容中找到内容?

这就是我尝试过的:

// i want to empty the data inside the id=student
content.find('#student').html('');

但是因为内容是一个字符串......我如何将HTML分配给变量并能够搜索?

更新:

这是我想要实现的目标:

我有一个ajax查询,我需要(#details)结构完好无损。

如果我清空结构,然后换一个不同的ajax查询,我可能需要在#student中做一些替换,因为它被清除了...

例如:

<div id="details">

 <div id="student">
   <span> {%weeks%} </span>
 </div>

 <div id="teacher">
   <span> {%whatever%} </span>
 </div>
</div>

所以有时我需要根据ajax查询清除学生/某个时候的老师,这就是我制作html副本的原因。

3 个答案:

答案 0 :(得分:1)

你可以使用选择器

$('#student', content);

答案 1 :(得分:0)

由于ID必须是唯一,您可以直接按ID选择元素,这比创建冗余jQuery对象更有效。

$('#student').html('');

您也可以使用空方法:

$('#student').empty();

请注意,如果您使用的是ajax,则可以使用html方法更改元素的html内容,而无需删除html内容。

// ...
success: function(data) {
     $('#student').html(data);
} 

如果要缓存对象,可以使用end方法返回先前的状态:

var $content = $('#details');
$content
   .find('#something').foo().end()
   .find('#anotherElement').bar().end()

或者,如果要复制元素,请使用clone方法:

var $contentCloned = $('#details').clone();

答案 2 :(得分:0)

为什么你不能这样做

$('#details').find('#student').html('')

或更好

$('#student').html('')