首先,我不确定这是否是一个错字,但你输入:
document.get**Element**ByClassName('floater').innerHTML = " ";
命令其实是:
document.get**Elements**ByClassName();
注意元素是复数形式。
现在,这与 getElementById 的行为不同。它返回一个节点列表,或者换句话说,一个包含指定类的所有元素的列表。
您可以将结果存储在一个数组中,如下所示:
var array_name = document.getElementsByClassName('floater');
然后循环遍历结果以执行您的操作:
for ( var i=0, var len=array_name.length; i<len; ++i ){
array_name[i].innerHtml = 'text';
}
我这里写的代码我没有测试过,但是方法已经试过了。
[编辑]
我忘了说 IE 不支持这个功能,你可以使用 jQuery 通过执行以下操作来完成此功能: $('floater').html('text');它是跨浏览器的。您还可以在 Web 上搜索模拟 getElementsByClassName 的行为并适用于所有浏览器的内容。
这里有一篇模拟getElementsByClassName功能更好的文章:
http://www.webmuse.co.uk/blog/custom-getelementsbyclassname-function-for-all-browsers/
document.getElementsByClassName = function( classname ) {
var elArray = [];
var tmp = document.getElementsByTagName("*");
var regex = new RegExp("(^|\s)" + classname + "(\s|$)");
for ( var i = 0; i < tmp.length; i++ ) {
if ( regex.test(tmp[i].className) ) {
elArray.push(tmp[i]);
}
}
return elArray;
;
这很好用,跨浏览器兼容,使用方式与 getElementsByClassName 相同。
文章中的用法示例:
var el = document.getElementsByClassName("para");
for ( var i = 0; i < el.length; i++ ) {
el[i].style.color = "red";
}