我试图让一个DIV的innerHTML越来越div名称
<div id="test" name="info1" onclick="func(this.name)">This is div 1</div>
的名字,但是当我尝试打印出来使用的innerHTML是div的名称回来为未定义。这可以做到或我做错了什么?
我试图让一个DIV的innerHTML越来越div名称
<div id="test" name="info1" onclick="func(this.name)">This is div 1</div>
的名字,但是当我尝试打印出来使用的innerHTML是div的名称回来为未定义。这可以做到或我做错了什么?
根据W3Schools一个div
不能有name
属性,但它可以有一个id
,class
或title
。我认为DOM不会识别该属性,因此不会将它提供给Javascript。
我做了一个example here它显示title
工作和name
失败,如你所描述的。
如果你想获得股利的名字,你应该写一些代码,可以从一个元素获取属性(如果你不感兴趣的跨浏览器支持只使用elem.getAttribute)
例如:
var getAttr = function(ele, attr) {
var result = ele.getAttribute(attr) || ele[attr] || null, attrs, len;
if(!result) {
attrs = ele.attributes;
len = attrs.length;
for(var i = 0; i < len; i++)
if(attrs[i].nodeName === attr)
result = attrs[i].nodeValue;
}
return result;
};
那么你可以做抓住一个属性关的节点
<div id="test" name="info1" onclick="func(getAttr(this, 'name'))">This is div 1</div>
最好的办法是使用的getAttribute作为唯一属性的一小部分是ACC直接可用(标题例如可以,但不能)。
的的getAttribute()方法也将与无标准属性(其可以是在时间非常有用)
在下面的代码应该正确的节点名称传递它到FUNC函数:)
<div id="test" name="info1" onclick="func(this.getAttribute('name')">This is div 1</div>
正常工作
希望有帮助。
这一个是非常有益的,thx –
噢好吧,我想我也可以使用标题。万分感谢! –
我会坚持使用id和class属性。他们是最可靠的。 – Kon