gpt4 book ai didi

jquery - 为什么 Internet Explorer 不能运行这个简单的 jQuery?

转载 作者:行者123 更新时间:2023-12-01 07:28:46 26 4
gpt4 key购买 nike

我正在运行一个非常简单的 jQuery 脚本来获取表中复选框选择的所有电子邮件。该表如下所示:

<table>
<tbody>
<tr>
<td>
<input type="checkbox" value="MD5HASH" />
</td>
<td>
First Name
</td>
<td class="email">
Email Address
</td>
</tr>
</tbody>
</table>

我的 jQuery 看起来像这样:

$("#submitButton").click(function() {
var output = [];
$("table tbody tr:has(input:checkbox:checked)").each(function() {
var email = $('td.email', $(this)).text();
if (validate(email) && output.indexOf(email) == -1)
output.push(email);
});

$("#emails").val(output.join(", "));
});

function validate(email) {
return /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/.test(email);
}

这在 IE 中会严重失败,但在其他地方都可以。

  1. table tbody tr:has(input:checkbox:checked) 选择器没有匹配任何内容。
  2. 调用 validate 会引发 Object Expected 错误。

为什么!? jQuery 不是被设计为跨浏览器和可移植的吗?

最佳答案

Internet Explorer (< 9) 没有 Array.prototype.indexOf 。尝试使用 jQuery 的 $.inArray相反(它是跨浏览器的,如果存在的话,实际上会使用 Array.prototype.indexOf :-P)。

if (validate(email) && $.inArray(email,output) == -1)
output.push(email);

关于jquery - 为什么 Internet Explorer 不能运行这个简单的 jQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7812866/

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