Я не уверен, что это ошибка или просто какая-то безумная новинка в jQuery 1.3, о которой я не знаю, или я просто сошел с ума.
У меня есть таблица с 11 флажками, и я не могу выбрать их все с помощью jQuery 1.3:
// jQuery 1.2.6
$(".myTable").find(":checkbox"); // finds 11 elements
// jQuery 1.3
$(".myTable").find(":checkbox"); // finds 1 element: the first checkbox
$(":checkbox", $(".myTable")); // finds 1 element
$('.myTable :checkbox')); // finds all 11 elements
Результаты будут такими же, если я использую .find('*'): он выбирает только первый элемент в 1.3, поэтому для :checkbox в этом нет ничего особенного.
На своей странице я могу воссоздавать это каждый раз, но когда я вставляю (казалось бы) соответствующие части в JSBin, это работает!
Исходная страница также включает в себя Mootools, но я очень осторожен с областью видимости, и не было никаких проблем с jQ 1.2.6, поэтому я не думаю, что это могло быть так. Есть другие идеи?
И прежде чем кто-либо это скажет, использование функции .find() в этом случае намного удобнее, чем комбинированный селектор (".myTable :checkbox"), и изменение всего моего кода на этот стиль - не вариант!
к сожалению нет. В моем локальном тестовом боксе он ломается каждый раз, но я не могу воссоздать проблему в другом коде. Пока я буду придерживаться 1.2.6 - Если не сломалось ...
Я нашел проблему. Я написал это в другом вопросе, который я задал: stackoverflow.com/questions/795861/…

Если это действительно ошибка, вам следует посетить сайт отслеживания ошибок jQuery и сообщить о ней (см. http://dev.jquery.com/).
Это особенно верно, поскольку 1.3 только что была выпущена. Однако, учитывая количество пройденных тестов, я настоятельно рекомендую вам попробовать очень простую веб-страницу, чтобы увидеть, действительно ли это проблема с jQuery или, как вы предлагаете, возможное взаимодействие с другими вашими инструментами (например, Mootools). . Простая страница с парочкой флажков, jQuery 1.3 и кодом, который вы указали в своем вопросе, была бы идеальной.
Только если это все еще проблема, я бы поднял ошибку в jQuery, в противном случае я бы начал с различных групп обсуждения, чтобы узнать, могут ли они помочь.
Например, этот фрагмент кода делает действительно работает, поэтому маловероятно, что это ошибка jQuery.
<html>
<head>
<script type = "text/javascript" src = "jquery-1.3.js"></script>
<script type = "text/javascript">
$(document).ready(function(){
$(document).find(":checkbox").attr('checked',false);
$("a").click(function(event){
$(".myTable").find(":checkbox").attr('checked',true);
event.preventDefault();
});
});
</script>
</head>
<body>
<a href = "http://nowhere.com/">Click me!</a><hr>
<table class = "myTable"><tr>
<td><input type = "checkbox">One</input></td>
<td><input type = "checkbox">Two</input></td>
<td><input type = "checkbox">Three</input></td>
</tr></table>
</body>
</html>
Привет, Пакс, я нашел, в чем проблема. Пояснение здесь: stackoverflow.com/questions/795861/…
Привет, Ник, тебе удалось разобраться в этом? Это интересный вопрос, который я хотел бы решить.