这是我的元素,带有自定义属性:
<input type="radio" status="B" name="OPT_PARENT"/>
我的剧本:
警报($(本).attr( “状态”));
警报($(本).attr( “测试”));
输出:
Firefox 3.0.10 - &gt; “B”和“未定义”
IE 8.0.7600.16385 - &gt; “真实”和“未定义”
我的观察:
IE将返回选项按钮“已检查状态”,这是真/假而不是自定义属性值。但IE绝对可以检测自定义属性是否存在。
我的问题: 如何在IE中获取自定义属性值?
答案 0 :(得分:2)
或许更好的选择是使用jquery的Data(),它允许您将数据附加到DOM对象,而无需使用无效/自定义属性修改它们。
我想这会消除浏览器不兼容问题。
答案 1 :(得分:1)
使用自定义属性通常是一个坏主意,即使在允许自定义属性的HTML5中,您拥有的内容也无效。为什么不将任何额外信息作为一个类或一个ID传递?你可以有像
这样的东西<input type="radio" id="extra_A" name="OPT_PARENT"/>
<input type="radio" id="something_B" name="OPT_PARENT"/>
<input type="radio" id="extra_C" name="OPT_PARENT"/>
我给它加前缀的原因是,选择你需要的元素会更容易:
$("input[id^=extra_]").each(function() {
alert($(this).attr('id').substr(6));
});
希望这有帮助。
答案 2 :(得分:0)
这是IE的解决方法,使用outerHTML
var status =
($(this)
.get(0)
.outerHTML
.replace(/^.+?\bstatus\s*=\s*(?:['"])(\w+).*$/,
function(tag, valueattr) {
return valueattr;
})) || '';
答案 3 :(得分:0)
谢谢大家。不知何故,我的朋友告诉我“状态”可能是非自定义属性。所以改变后“状态” - &gt; “myStatus”我的代码工作得很好。