find()来自jquery对象的第一个元素

时间:2012-10-15 13:49:26

标签: javascript jquery

我已经“缓存”了一个名为$myElement的循环中使用的jQuery对象。我想在其上使用一些本机JavaScript函数(以获得更好的性能)。但是,我在下面的尝试会抛出错误(元素未定义)。有没有办法实现这个目标?

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

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

更新:我想做的是:

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

这给了我一个错误。

3 个答案:

答案 0 :(得分:6)

您似乎需要

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

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

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

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

我认为你没有在正确的位置进行优化。

答案 1 :(得分:3)

.innerHTML属性不是函数。只需使用赋值设置其内容即可。

.innerHTML = "foo";

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

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

.html("foo");

答案 2 :(得分:0)

您可以使用 jQuery's "first" 这样的功能:

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

或者使用jQuery's "eq"函数通过索引获取nth-child,如下所示:

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

或者你也可以使用 jQuery's "get" 函数返回该匹配的DOM实例:

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

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