Вы можете использовать этот код, чтобы найти все флажки, которые в настоящее время отмечены:
$(':checkbox:checked')
Если вы хотите что-то сделать для всех из них, вы можете использовать функцию each
следующим образом:
$(':checkbox:checked').each(function() {
// alerts the checkbox for example
// "this" referes to the checkbox, one after the other
alert(this);
})
Или сделать то, что вы просили («для всех флажков, которые уже отмечены при загрузке страницы, чтобы эта функция применялась ко всем»):
$(':checkbox:checked').each(function() {
product_analysis("someaddress", this);
})
РЕДАКТИРОВАТЬ: Чтобы решить второй вопрос (не часть исходного вопроса, а комментарии ниже):
Я предполагаю, что в вашей разметке есть такие поля.Конечно, используйте несколько значимых идентификаторов, а не мои глупые примеры.
<input type="checkbox" id="foo" />
<input type="checkbox" id="bar" />
<input type="checkbox" id="baz" />
Тогда вы добавите в свой JS следующее:
var addresses = {
foo: 'some_address',
bar: 'some_other_address',
baz: 'yet_another_one'
};
$(':checkbox:checked').each(function() {
product_analysis(addresses[this.id], this);
})
Это вызовет product_analysis с адресом, который соответствуетк идентификатору флажка.
РЕДАКТИРОВАТЬ (снова):
Есть на самом деле способ добавить метаданные непосредственно в html-теги, которые я не был 'не знаю о.Вы можете добавить атрибуты с префиксом «data-» к вашему тегу, например:
<input type="checkbox" data-address="someaddress" data-foo="something else" data-bar="more data!" />
Подробнее об этом можно прочитать в блоге Джона Резига .