Javascript 值属性类型自动类型转换
我在MicrosoftEdge(14)和IE(11)上遇到了一些奇怪的行为。 我使用JQuery创建了动态元素:Javascript 值属性类型自动类型转换,javascript,jquery,internet-explorer,microsoft-edge,Javascript,Jquery,Internet Explorer,Microsoft Edge,我在MicrosoftEdge(14)和IE(11)上遇到了一些奇怪的行为。 我使用JQuery创建了动态元素: var option1 = $('<li class="btn my-dropdown-item">Option 1</li>'); option1.attr('value', '00:05:00'); option1.attr('value-test', '00:05:00'); var theValue1 = option1.attr('value');
var option1 = $('<li class="btn my-dropdown-item">Option 1</li>');
option1.attr('value', '00:05:00');
option1.attr('value-test', '00:05:00');
var theValue1 = option1.attr('value');
var testValue1 = option1.attr('value-test');
var option2 = $('<li class="btn my-dropdown-item">Option 2</li>');
option2.attr('value', '01:00:00');
option2.attr('value-test', '01:00:00');
var theValue2 = option2.attr('value');
var testValue2 = option2.attr('value-test');
Edge(14)中的结果:
IE(11)中的结果:
我猜这是某种类型的转换,但我真的不明白这里发生了什么,为什么?
这些bug是IE/EDGE中的吗?我遗漏了什么吗?列表项唯一可以有值的时间是当它位于有序列表中时,然后该值只能是一个数字(整数) 此整数属性表示列表的当前序号值 由元素定义的项。此项的唯一允许值 属性是一个数字
它是仅在li
上显示还是在许多标记名上显示?我发现了它。。。请看注释中链接的规格。当li是ol的子级时,它确实具有值属性。公平地说,这个问题中的li是一个孤儿,即使它是ol的孩子,value属性也被误用了,使用data属性的解决方案也适用。@BoltClock-没错,忘了ol,公平地说,该值只能是一个数字,这可能就是IE和Edge将其视为数字的原因
theValue1 === "00:05:00"
testValue1 === "00:05:00"
theValue2 === "01:00:00"
testValue2 === "01:00:00"
theValue1 === 0
testValue1 === "00:05:00"
theValue2 === 1
testValue2 === "01:00:00"
theValue1 === "00:05:00"
testValue1 === "00:05:00"
theValue2 === 1
testValue2 === "01:00:00"
<ol>
<li value="0">first</li>
<li value="1">second</li>
<ol>