JQuery:"$(“#myDIV li”).eq(1)"的非JQuery等效方法是什么?

6

我正在尝试减少对JQuery的依赖,因此我有以下的JQuery代码:

$("#myDIV li").eq(1).html('...');
$("#myDIV li").eq(2).html('...');
$("#myDIV li").eq(3).html('...');

如何在不使用 JQuery(只使用纯JavaScript)的情况下执行上述代码。


1
+1 鼓励你(倒抽一口气)不依赖 jQuery 处理每一个小细节。我喜欢 jQuery,但没有必要宗教般地依赖它。 - user113716
2个回答

8
var lis = document.getElementById('myIDV').getElementsByTagName('li');
lis[1].innerHTML = '...';
lis[2].innerHTML = '...';
lis[3].innerHTML = '...';

顺便说一下,如果你想用jQuery来做这件事情,先保存你的元素并在它们上面操作,而不是每次遍历DOM:

var lis = $("#myDIV li");
lis.eq(1).html('...');
lis.eq(2).html('...');
lis.eq(3).html('...');

1
document.getElementById("myDIV").getElementsByTagName("li")[0].innerHTML = '...';

等等。

然而问题仍然存在 - 为什么不使用jQuery呢?

澄清一下:我并不是要建议忽略事物的工作原理。如果这就是OP想要的,那就没问题。然而,我认为jQuery现在已经成为页面上的“标准开销”之一,即使是最微小的事情,我也毫不犹豫地使用它,因为我很可能以后还会需要更多的它。


因为对于这样简单的琐碎任务,你不需要框架。永远不要忘记库会添加另一层抽象,你添加的层数越多,可能遇到的问题就越多。 - Andreas Grech
询问在任何情况下都使用jQuery的API是否合适?如果可以使用本地API,并且没有兼容性问题,那么为什么要承受额外的开销呢?我喜欢jQuery,但越来越多地尝试理解和使用底层API。 - user113716
1
作为一个在没有jQuery的荒野中漫游了很长时间的人,我知道底层API是如何工作的(确实,它们在不同的浏览器中的工作方式也不同),所以我会每次选择框架,而且我不在乎页面有多简单。 - Pointy
@Pointy - 我肯定不会很快离开jQuery。但对我来说情况恰恰相反。我最初使用的是jQuery,但更常问自己的问题是“我真的需要将这个元素转换为jQuery对象吗?” - user113716
3
我正在流浪于没有框架的荒野中,而且我很喜欢这种感觉 :) 除了我自己编写的框架,我从未使用过JavaScript框架。我更喜欢掌控和理解“低层级”的工作方式...或者至少是DOM版本的“低层级”。 - Bob
我真的很喜欢这个帖子,也同意楼主的观点。我认为了解引擎底层(在这种情况下是jQuery)也有助于更好地理解jQuery。 - Fabio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接