首页 > 代码库 > 属性的获取
属性的获取
jQuery.attr , Sizzle.attr
Sizzle.attr = function(elem, name) { // Set document vars if needed if ((elem.ownerDocument || elem) !== document) { setDocument(elem); } var fn = Expr.attrHandle[name.toLowerCase()], // Don‘t get fooled by Object.prototype properties (jQuery #13807) val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined; return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;};
在IE6 7中getAttribute返回属性而不是属性
// Support: IE<8// Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans)support.attributes = assert(function(div) { div.className = "i"; return !div.getAttribute("className");});
所以jquery采用getAttributeNode方法处理
获取属性值 - getAttribute()
getAttribute("") 方法返回属性的值。
获取属性值 - getAttributeNode()
getAttributeNode("") 方法返回属性节点,getAttributeNode(‘‘).value取得节点值。
<li class="aa"></li>
li.getAttributeNode(‘class‘) // class="aa"li.getAttribute(‘class‘) //aa
特别指出加强specified的判断是因为,在IE6 7会返回所有的节点,只需要返回有用的特性节点
属性的获取
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。