1

我已经“缓存”了一个 jQuery 对象,我在一个名为$myElement. 我想在上面使用一些原生 JavaScript 函数(以获得更好的性能)。但是,我在下面的尝试会引发错误(元素未定义)。有没有办法做到这一点?

$myElement.find('span')[0];

$myElement.find('span').get(0);

更新:我想做的是:

$myElement.find('span')[0].innerHTML('some text');

这给了我一个错误。

4

3 回答 3

6

你似乎需要

$myElement.find('span')[0].innerHTML = 'some text';

因为 innerHTML 不是基本 DOM 元素的函数。

但是没有错,如果您使用 jQuery 获取元素,也可以使用 html 函数:

$myElement.find('span').first().html('some text');

我认为您没有在正确的点上进行优化。

于 2012-10-15T13:53:18.840 回答
3

.innerHTML属性不是函数。只需使用分配设置其内容。

.innerHTML = "foo";

.innerHTML但是在使用 jQuery 时要小心。如果你清除这样的内容,并且任何内容都有任何数据或分配给 jQuery 的处理程序,你就会有内存泄漏。

更安全的做法是使用 jQuery 更新内容。

.html("foo");
于 2012-10-15T13:53:26.903 回答
0

你可以像这样使用jQuery 的“first”函数:

$myElement.find('span').first();

或者使用jQuery 的“eq”函数通过索引获取第 n 个孩子,如下所示:

$myElement.find('span').eq(3);

或者你也可以使用jQuery 的“get”函数来返回匹配的 DOM 实例:

$myElement.find('span').get(2);

正如您在此示例中看到的:

于 2012-10-15T13:55:03.507 回答