0

我对 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 的原因。

4

3 回答 3

1

你可以使用选择器

$('#student', content);
于 2012-12-14T16:48:45.150 回答
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();
于 2012-12-14T17:05:34.000 回答
0

为什么你不能做

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

或更好

$('#student').html('')
于 2012-12-14T17:05:47.497 回答