使用javascript代码不是用于id,而是用于类

Har*_*iec 3 html javascript class

我有一个javascript函数MyFunc(),可以完成与它有关的功能id="item_for_MyFunc".在功能中有一个

var elem = document.getElementById("item_for_MyFunc");
Run Code Online (Sandbox Code Playgroud)

和HTML身体有:

<body onload="MyFunc()">
<p id="item_for_MyFunc">
Run Code Online (Sandbox Code Playgroud)

一切正常,但我想在页面上的几个项目中使用此功能.这就是为什么我应该<p class="item_for_MyFunc">在页面上多次使用这个函数来处理,所以使用id不是解决方案.

应该对函数进行哪些更改以便更改class="item_for_MyFunc"

Geu*_*uis 5

所以你在那里做的很简单.让我给你一个稍微强大的版本:

document.addEventListener('load', function(){

    var elements = document.querySelectorAll('.myClassName');
    for(var i=0, len=elements.length; i<len; i++){
        MyFunc.call( elements[i] );
    }

}, false);
Run Code Online (Sandbox Code Playgroud)

所以旧版本的IE,6和7要具体,没有querySelectorAll.我假设你并不担心他们.如果你是,还有其他方法可以做到这一点,我可以告诉你如何需要.

基本上我们给你的所有元素一个'myClassName'类,querySelectorAll找到所有元素并返回一个DOM元素数组.

然后我们遍历列表,并在每个元素上执行MyFunc.

编辑 因此编写好的javascript的一个关键原则是尽可能地将js代码与html标记分开.你几乎不应该再使用像onload ="myFunc"这样的内联事件处理程序了.使用js本身编写的事件处理程序.

如果您有选项,则应使用jQuery库.它使很多这些东西变得异常简单,对非常旧的浏览器提供了很好的支持,并且在数十万个网站上使用.