Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 值属性类型自动类型转换_Javascript_Jquery_Internet Explorer_Microsoft Edge - Fatal编程技术网

Javascript 值属性类型自动类型转换

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');

我在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 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>