Я запускаю очень простой скрипт 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, но работает везде.
- Селектор
table tbody tr:has(input:checkbox:checked)
ничего не соответствует.
- При вызове validate выдается ошибка
Object expected
.
ПОЧЕМУ !? Разве jQuery не предназначен для работы в разных браузерах и переносим?