gpt4 book ai didi

javascript - JQuery Append 删除 IE 和 Edge 中的字符

转载 作者:行者123 更新时间:2023-12-02 23:48:12 26 4
gpt4 key购买 nike

使用 JQuery,当我循环遍历数组并将值附加到 UL 时,它在 Chrome 和 Firefox 中工作正常。在 IE 和 Edge 中,如果该值以数字开头,后跟破折号或下划线,则会 chop 该值。

var listItems = $('#list1');

var result = ['1-2-3', '1_2_3', 'a-b-c', 'a_b_c'];

$.each(result, function(key, value) {
listItems.append($('<li/>', {
value: value,
text: value
}))
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="list1"></ul>

预期结果:

<ul>
<li value="1-2-3">1-2-3</li>
<li value="1_2_3">1_2_3</li>
<li value="a-b-c">a-b-c</li>
<li value="a_b_c">a_b_c</li>
</ul>

实际结果:

<ul>
<li value="1">1-2-3</li>
<li value="1">1_2_3</li>
<li value="a-b-c">a-b-c</li>
<li value="a_b_c">a_b_c</li>
</ul>

最佳答案

不要使用。根据specificationli 元素的值必须是整数:

The value attribute, if present, must be a valid integer. It is used to determine the ordinal value of the list item, when the li's list owner is an ol element.

IE 和 Edge 通过从值中提取整数前缀来强制执行此要求;如果值不以整数开头,他们只会保留该值。

如果需要将自定义数据附加到元素,请使用 data-XXX 属性,可以在创建元素时使用 data: 属性在 jQuery 中设置该属性,您可以使用 .data() 方法获取和更新。

var listItems = $('#list1');

var result = ['1-2-3', '1_2_3', 'a-b-c', 'a_b_c'];

$.each(result, function(key, value) {
listItems.append($('<li/>', {
data: {
value: value
},
text: value
}))
});

$("li").click(function() {
alert($(this).data("value"));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="list1"></ul>

关于javascript - JQuery Append 删除 IE 和 Edge 中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55752835/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com