JQuery 1.3 выбирает только первый элемент

Я не уверен, что это ошибка или просто какая-то безумная новинка в 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"), и изменение всего моего кода на этот стиль - не вариант!

Привет, Ник, тебе удалось разобраться в этом? Это интересный вопрос, который я хотел бы решить.

paxdiablo 20.01.2009 06:45

к сожалению нет. В моем локальном тестовом боксе он ломается каждый раз, но я не могу воссоздать проблему в другом коде. Пока я буду придерживаться 1.2.6 - Если не сломалось ...

nickf 21.01.2009 04:27

Я нашел проблему. Я написал это в другом вопросе, который я задал: stackoverflow.com/questions/795861/…

nickf 28.04.2009 05:38
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
3
3
2 887
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если это действительно ошибка, вам следует посетить сайт отслеживания ошибок 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/…

nickf 28.04.2009 05:39

Другие вопросы по теме