html需要调用js中同一个id两次,显然ID是唯一的,所以用class代替时,getElementBy应该怎么办?
4个回答
展开全部
你可以给两个元素设置一个相同值得name属性,然后用getElementByName("nameValue")方法返回一数组,数组会包含那两个相同name值的元素对象。
之后可以用for语句遍历数组,处理那两个元素对象。
还有一种方法是给那两个元素设置相同的class值;
再封装一个函数,先获取那两个对象的父级对象,再遍历该父级的所有后代,用if判断className为你设置的class值时,将其压入一个创建的数组中,最后返回该数组。
之后同样可以用for语句遍历返回的数组,处理那两个元素对象。
还有也可以就给两个元素不同的id值,而将它们的处理代码块封装成一个函数,再将获取的两个元素对象分别调用该函数。
展开全部
可以实现一个自己的getElementByClass。如果每个元素只设置一个class的话,那么很简单
document.getElementByClass = function(n) {
var el = [],
_el = document.getElementsByTagName('*');
for (var i=0; i<_el.length; i++ ) {
if (_el[i].className == n ) {
el[el.length] = _el[i];
}
}
return el;
}
使用方法就跟getElementByTag类似。
如果元素会有多个class的话要稍微复杂点,可以参考上面的例子修改。或者看看这里:
http://stackoverflow.com/questions/1933602/how-to-getelementbyclass-instead-of-getelementbyid-with-javascript
document.getElementByClass = function(n) {
var el = [],
_el = document.getElementsByTagName('*');
for (var i=0; i<_el.length; i++ ) {
if (_el[i].className == n ) {
el[el.length] = _el[i];
}
}
return el;
}
使用方法就跟getElementByTag类似。
如果元素会有多个class的话要稍微复杂点,可以参考上面的例子修改。或者看看这里:
http://stackoverflow.com/questions/1933602/how-to-getelementbyclass-instead-of-getelementbyid-with-javascript
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-25
展开全部
如果想简单,就用jquery吧,$(".className")就得到jquery对象了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
自己实现
document.getElementByClass = function(n) {
var el = [],
_el = document.getElementsByTagName('*');
for (var i=0; i<_el.length; i++ ) {
if (_el[i].className == n ) {
el[el.length] = _el[i];
}
}
return el;
}
document.getElementByClass = function(n) {
var el = [],
_el = document.getElementsByTagName('*');
for (var i=0; i<_el.length; i++ ) {
if (_el[i].className == n ) {
el[el.length] = _el[i];
}
}
return el;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询