2010-09-11 2 views

ответ

-1

Может быть, вы могли бы уточнить, какие элементы вы хотите. Если вы хотите все флажки, используйте приведенный ниже пример. В противном случае, если вы хотите только элементы класса .check, замените $('input[type=checkbox]') в моем примере $('.check')

Самый простой способ сделать это - использовать jQuery. Если вы просто хотите, идентификаторы, это будет хранить каждый из них в массиве «checkid»:

var checkid=new Array(); 
$('input[type=checkbox]').each(function() { 
    checkid[checkid.length]=$(this).attr('id'); 
}); 
+1

Вот скрипка: http://jsfiddle.net/BCAW6/ – Robert

+0

Ни '$', ни 'Array.prototype.push' не являются стандартными и кросс-браузерными. Поскольку вопрос не указывает на библиотеку, я не думаю, что использование синтаксиса синтаксиса jQuery/CSS обязательно является подходящим. – eyelidlessness

+0

Я уверен, что push совместим с популярными браузерами. Однако, чтобы максимизировать совместимость, я немного изменил код. Что касается jQuery $, я думаю, что вам нужно получить свои факты прямо, потому что jQuery совместим с несколькими браузерами. Если вы не думаете, что использование селектора CSS подходит, что вы предлагаете? Я использую jQuery в моем примере, потому что jQuery предназначен для кросс-браузера, и вам не нужно иметь дело со всеми небольшими деталями и сбоями некоторых браузеров. – Kranu

-3

Если вы хотите какую-либо надежды на перекрестной совместимости браузера вы используете яваскрипт структуру (как JQuery)

+0

Мне еще предстоит увидеть решение, совместимое с кросс-браузером. Спасибо за подавляющее большинство голосов. –

+0

Просто FYI, я не использовал ни одного из них, хотя кто-то сделал downvote mine> _> Но просто интересно, как мое решение не совместимо с кросс-браузером? Если вам интересно, почему у вас есть -3, это потому, что вы просто пишете «вы не можете этого сделать». Возможно, в следующий раз вы сможете предоставить какой-то код о том, как вы это сделаете, даже если вы используете jQuery. Я имею в виду, если вы просто загружаете jQuery, он автоматически ничего не делает. – Kranu

+0

@Kranu: Вопрос не касался jquery, оригинальный плакат, по-видимому, использовал его, но это было просто повезло для вас. Я говорил, что нет никакого способа сделать это только в javascript, который будет работать на всех браузерах, если у вас уже нет слоя абстракции. Я проголосовал 3 раза, хотя это правильно - ваш ответ был для определенного уровня абстракции, а другой не работает в IE. –

-1

Суммируя все предложения, вы бы закончить этот фрагмент кода

var inputs = document.getElementsByTagName("input"), 
    checked_ids = [], 
    input = null, 
    i = inputs.length; 

while (i--) { 
    input = inputs[i]; 
    if (input.type === "checkbox" && input.className === "check" && input.checked === true) 
     checked_ids.push(input.id); 
} 

example

Редакция
Пересмотренный код
Спасибо за пуск голосования без объяснения ...

Смежные вопросы