`
hengxing2009
  • 浏览: 90994 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

js通过classname来获取元素

阅读更多
原生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的情况了
分享到:
评论

相关推荐

    js通过classname来获取元素的方法

    本文将详细讲解通过类名获取元素的方法,并提供相应的代码示例。 首先,原生JavaScript提供了三种基本的获取元素的方法: 1. `getElementById('id')`:通过元素的唯一ID获取单个元素。这是最快且最直接的方式,但...

    javascript通过className来获取元素的简单示例代码

    以下是一个简单的示例,展示了如何通过类名获取元素: ```javascript function getElementsByClassName(n) { var classElements = [], allElements = document.getElementsByTagName('*'); for (var i = 0; i ; i...

    javascript通过className获取文件元素.docx

    javascript通过className获取文件元素.docx

    JS封装通过className获取元素的函数示例

    本文实例讲述了JS封装通过className获取元素的函数。分享给大家供大家参考,具体如下: &lt;div class=star&gt;&lt;/div&gt; &lt;div class=star&gt;&lt;/div&gt; &lt;div class=app&gt;&lt;/div&gt; &lt;p class=star&gt;&lt;/p&gt; &lt;p class=ar&gt;&lt;/p&gt; 假设...

    js获取页面控件坐标.pdf

    在 JavaScript 中,我们可以使用多种方法来获取元素的坐标,例如使用 getBoundingClientRect() 方法可以获取元素相对于视窗的坐标,而使用 getComputedStyle() 方法可以获取元素的样式信息,包括其坐标信息。...

    js 获取class的元素的方法 以及创建方法getElementsByClassName

    其中一种非常常见的情况是需要根据元素的class属性来获取元素集合。在JavaScript中,可以使用`getElementsByClassName`方法来实现这一需求。该方法是由文档对象模型(DOM)提供的一个原生JavaScript方法,能够返回一...

    javascript通过class来获取元素实现代码

    本文将详细介绍如何使用JavaScript通过class名来获取元素,并提供具体的实现代码。 #### 1. 通过Class获取元素的原理 在HTML文档中,可以通过多种方式来选择或获取元素,如通过ID、标签名、类名等。而通过类名...

    js通过元素class名字获取元素集合的具体实现

    代码如下: function getElementsByClassName(n) { var classElements = [],... i++ ) { if (allElements[i].className == n ) { classElements[classElements.length] = allElements[i]; } } return classElements; }

    js获取class的所有元素

    在给定的代码示例中,我们看到一个名为`getClass`的自定义函数,它用于根据标签名称和类名获取元素。这个功能在不支持`getElementsByClassName`原生方法的老版本浏览器中尤其有用。 首先,我们来详细解析这个`...

    js与jquery获取父元素,删除子元素的两种不同方法.docx

    在Web开发过程中,经常需要处理DOM(Document Object Model)的操作,包括获取元素、修改元素属性以及删除元素等。本文将详细介绍如何使用JavaScript(简称JS)和jQuery这两种流行的技术来获取指定元素的父元素,并...

    通过js给html元素赋值

    之后,我们可以通过`.innerHTML`属性来设置或获取元素的内容。 2. **使用jQuery简化操作** jQuery是一种流行的JavaScript库,它提供了一套丰富的API,可以更简单地处理HTML文档模型、选择DOM元素、制作动画效果...

    js querySelector和getElementById通过id获取元素的区别

    `document.getElementById`只能通过ID获取单个元素,而`document.querySelector`则可以根据更广泛的CSS选择器来获取元素。比如你可以用`document.querySelector('.className')`来获取类选择器匹配的元素,或者使用`...

    JavaScript中常见获取元素的方法汇总

    其次,通过标签名来获取元素也是一种常用方式。JavaScript提供了getElementsByTagName方法,该方法接收一个标签名作为参数,并返回一个HTMLCollection集合,包含文档中所有具有该标签名的元素。这个方法不仅可以被...

    js获取页面文字的例子

    此外,`innerText`属性也是获取元素文本内容的一种方式,但它会解析HTML标签并应用内联样式,所以通常`textContent`更为推荐。在实际开发中,根据需求选择合适的方法至关重要。 压缩包中的`test.html`文件可能是...

    js 利用className得到对象的实现代码

    本文介绍了在JavaScript中如何利用元素的类名(className)获取到对应的HTML元素对象,并对获取到的元素对象进行操作,具体实现是通过编写函数来获取具有特定类名的元素,并为元素内的子元素(如input)添加事件监听...

    jQuery与javascript对照学习 获取父子前后元素 实现代码.docx

    本文将详细介绍如何使用jQuery与原生JavaScript来获取父元素、子元素、前一个元素和后一个元素,并通过具体的代码示例来进行比较。 #### 二、获取父元素 ##### 1. 使用jQuery获取父元素 在jQuery中,可以通过`....

Global site tag (gtag.js) - Google Analytics