TDH*_*DHM 156 javascript dom
使用JavaScript,我们可以使用以下语法通过id获取元素:
var x=document.getElementById("by_id");
Run Code Online (Sandbox Code Playgroud)
我试着按顺序逐个获取:
var y=document.getElementByClass("by_class");
Run Code Online (Sandbox Code Playgroud)
但它导致了错误:
getElementByClass is not function
Run Code Online (Sandbox Code Playgroud)
我怎样才能通过它的类得到一个元素?
Eli*_*gem 227
实际上getElementsByClassName,DOM函数的名称并不是getElementByClassName因为页面上的多个元素可以具有相同的类,因此:Elements.
它的返回值将是NodeList实例,或者是NodeList(FF,例如返回实例HTMLCollection)的超集.无论如何:返回值是一个类似数组的对象:
var y = document.getElementsByClassName('foo');
var aNode = y[0];
Run Code Online (Sandbox Code Playgroud)
如果由于某种原因你需要将返回对象作为数组,那么你可以很容易地做到这一点,因为它具有魔法长度属性:
var arrFromList = Array.prototype.slice.call(y);
//or as per AntonB's comment:
var arrFromList = [].slice.call(y);
Run Code Online (Sandbox Code Playgroud)
根据caniuse.com的说法querySelector('.foo'),正如yckart建议并且querySelectorAll('.foo')更可取的是,因为它们确实得到了更好的支持(93.99%对87.24%):
yck*_*art 49
另一种选择是使用,querySelector('.foo')或者querySelectorAll('.foo')拥有比浏览器更广泛的支持getElementsByClassName.
http://caniuse.com/#feat=queryselector
http://caniuse.com/#feat=getelementsbyclassname
udi*_*idu 24
你需要使用 document.getElementsByClassName('class_name');
并且不要忘记返回的值是一个元素数组,所以如果你想要第一个使用:
document.getElementsByClassName('class_name')[0]
您可以使用
getElementsByClassName
Run Code Online (Sandbox Code Playgroud)
假设您有一些元素并且应用了类名'test',那么,您可以获得如下的元素
var tests = document.getElementsByClassName('test');
Run Code Online (Sandbox Code Playgroud)
它返回一个实例NodeList或其超集:HTMLCollection(FF).
| 归档时间: |
|
| 查看次数: |
400789 次 |
| 最近记录: |