不带jquery的javascript find()函数

不带jquery的javascript find()函数,javascript,Javascript,我喜欢尝试新事物。因此,我决定在不使用jquery的情况下创建自己的函数。我正在尝试构建find() 这是我的代码: 函数$(el){ var firstChar=el.charAt(0), id=document.getElementById(el.slice(1)); 开关(firstChar){ 案例“#”: 返回id; 打破 } } 函数查找(el,循环){ 返回getElementsByTagName(el)[循环]; } $(“#测试”).find(“h1”,0).innerHTM

我喜欢尝试新事物。因此,我决定在不使用jquery的情况下创建自己的函数。我正在尝试构建
find()

这是我的代码:

函数$(el){
var firstChar=el.charAt(0),
id=document.getElementById(el.slice(1));
开关(firstChar){
案例“#”:
返回id;
打破
}
}
函数查找(el,循环){
返回getElementsByTagName(el)[循环];
}
$(“#测试”).find(“h1”,0).innerHTML=“一些文本”

测试一
测试二
必须对DomeElement调用
。e、 g.
document.getElementsByTagName
yourElement.getElementsByTagName

相当于
find
的是和

一个简单的实现,类似于jQuery中的实现方式,但它只是一个概念验证代码,不用于生产代码:

函数$(选择器){
函数结果集(元素){
var i;
//将结果集设置为类似数组的对象
this.length=elements.length;
//将元素中的值复制到此
对于(i=0;i

测试一
测试二

尝试使用document.getElementsByTagName(el)我已经尝试过了,它也不起作用。因为文档是在$()函数的第一个部分声明的,所以您可以直接使用它id,您仍然希望将其用作函数,函数find(el,loop){return document.getElementsByTagName(el)[loop];}find(“h1”,0).innerHTML=“some text”;它们都在工作,我怎么能在这个.getElementsByTagName(“h1”)[0]上构建find()函数呢?所以,我不再重复它们了?感谢t.Nieswe你说的
[…]是什么意思?我如何在此基础上构建find()函数。getElementsByTagName(“h1”)[0]
我的意思是,我如何用一个函数生成更短的语句,而不是像这样反复调用它。getElementsByTagName(“h1”)[0]。innerHTML@ChingChing我编辑了答案。但正如我所提到的,我不是应该在生产中使用的代码,它只是为了说明如何做到这一点。太棒了!我从你的解决方案中学到了很多东西。非常感谢你,t.niese!!!!
 document.getElementById("#test").getElementsByTagName("h1")[0].innerHTML = "some text";
 document.getElementById("#test").querySelector("h1").innerHTML = "some text";
 document.getElementById("#test").querySelectorAll("h1")[0].innerHTML = "some text";