原生JS有3种方式来获取元素:
getElementById('id')
getElementsByName('name')
getElementsByTagName('tag')
getElementById是获取元素最快的方式,但我们不能给每个HTML元素都加以ID吧,所以我们需要一个很方便的通过className来获取元素:
function getElementsByClassName(className,tagName){
var ele=[],all=document.getElementsByTagName(tagName||"*");
for(var i=0;i<all.length;i++){
if(all[i].className==className){
ele[ele.length]=all[i];
}
}
return ele;
}
console.log(getElementsByClassName("entry"));
console.log(getElementsByClassName("entry","div"));
实现原理很简单,通过getElementsByTagName获取到一个元素集合,如果传入了tagname这个参数就根据传入的
tagname来获取,否则获取所有的元素,然后再一个一个元素来匹配classname是否相等..
上面这个方法很粗糙,能实现我们的基本需求,如果我们要获取的元素有多个 classname怎么办?
明显通过className==是不行了,以前的文章中我写过《js实现hasClass》,也讲述了《jQuery的hasclass的实现原理》
所以我们只要把上面两篇文章的hasclass函数搬过来就OK了,我们再次来改造下我们的getElementsByClassName函数
function getElementsByClassName(className,tagName){
var ele=[],all=document.getElementsByTagName(tagName||"*");
for(var i=0;i<all.length;i++){
if(all[i].className.match(new RegExp('(\\s|^)'+className+'(\\s|$)'))){
ele[ele.length]=all[i];
}
}
return ele;
}
这样就能处理一个元素含有多个classname的情况了
分享到:
相关推荐
本文将详细讲解通过类名获取元素的方法,并提供相应的代码示例。 首先,原生JavaScript提供了三种基本的获取元素的方法: 1. `getElementById('id')`:通过元素的唯一ID获取单个元素。这是最快且最直接的方式,但...
以下是一个简单的示例,展示了如何通过类名获取元素: ```javascript function getElementsByClassName(n) { var classElements = [], allElements = document.getElementsByTagName('*'); for (var i = 0; i ; i...
javascript通过className获取文件元素.docx
本文实例讲述了JS封装通过className获取元素的函数。分享给大家供大家参考,具体如下: <div class=star></div> <div class=star></div> <div class=app></div> <p class=star></p> <p class=ar></p> 假设...
在 JavaScript 中,我们可以使用多种方法来获取元素的坐标,例如使用 getBoundingClientRect() 方法可以获取元素相对于视窗的坐标,而使用 getComputedStyle() 方法可以获取元素的样式信息,包括其坐标信息。...
其中一种非常常见的情况是需要根据元素的class属性来获取元素集合。在JavaScript中,可以使用`getElementsByClassName`方法来实现这一需求。该方法是由文档对象模型(DOM)提供的一个原生JavaScript方法,能够返回一...
本文将详细介绍如何使用JavaScript通过class名来获取元素,并提供具体的实现代码。 #### 1. 通过Class获取元素的原理 在HTML文档中,可以通过多种方式来选择或获取元素,如通过ID、标签名、类名等。而通过类名...
代码如下: function getElementsByClassName(n) { var classElements = [],... i++ ) { if (allElements[i].className == n ) { classElements[classElements.length] = allElements[i]; } } return classElements; }
在给定的代码示例中,我们看到一个名为`getClass`的自定义函数,它用于根据标签名称和类名获取元素。这个功能在不支持`getElementsByClassName`原生方法的老版本浏览器中尤其有用。 首先,我们来详细解析这个`...
在Web开发过程中,经常需要处理DOM(Document Object Model)的操作,包括获取元素、修改元素属性以及删除元素等。本文将详细介绍如何使用JavaScript(简称JS)和jQuery这两种流行的技术来获取指定元素的父元素,并...
之后,我们可以通过`.innerHTML`属性来设置或获取元素的内容。 2. **使用jQuery简化操作** jQuery是一种流行的JavaScript库,它提供了一套丰富的API,可以更简单地处理HTML文档模型、选择DOM元素、制作动画效果...
`document.getElementById`只能通过ID获取单个元素,而`document.querySelector`则可以根据更广泛的CSS选择器来获取元素。比如你可以用`document.querySelector('.className')`来获取类选择器匹配的元素,或者使用`...
其次,通过标签名来获取元素也是一种常用方式。JavaScript提供了getElementsByTagName方法,该方法接收一个标签名作为参数,并返回一个HTMLCollection集合,包含文档中所有具有该标签名的元素。这个方法不仅可以被...
此外,`innerText`属性也是获取元素文本内容的一种方式,但它会解析HTML标签并应用内联样式,所以通常`textContent`更为推荐。在实际开发中,根据需求选择合适的方法至关重要。 压缩包中的`test.html`文件可能是...
本文介绍了在JavaScript中如何利用元素的类名(className)获取到对应的HTML元素对象,并对获取到的元素对象进行操作,具体实现是通过编写函数来获取具有特定类名的元素,并为元素内的子元素(如input)添加事件监听...
本文将详细介绍如何使用jQuery与原生JavaScript来获取父元素、子元素、前一个元素和后一个元素,并通过具体的代码示例来进行比较。 #### 二、获取父元素 ##### 1. 使用jQuery获取父元素 在jQuery中,可以通过`....