#javascript #php #jquery #html #loops
#javascript #php #jquery #HTML #циклы
Вопрос:
Отказ от ответственности: Я новичок в jQuery
Я не знаю, как озаглавить этот вопрос, но сначала мой код приведен ниже
$(document).on("click" ,'[id^="picChangeAddress"]', function() {
$('div[id^="divAddressSet"]').toggle();
});
Пожалуйста, не то, чтобы у меня было одинаковое количество div и флажков, каждый формат имени также одинаков, например, флажки picChangeAddress1, picChangeAddress2
и так далее, а также div divAddressSet1, divAddressSet2
и так далее.
Я использовал приведенный выше код, потому что эти идентификаторы генерируются во время выполнения. Сначала мне нужно задать несколько вопросов, когда я нажимаю на один флажок, все это влияет на каждый div div[id^="divAddressSet"]
на странице, и все они переключаются, когда я нажимаю на любой из [id^="picChangeAddress"]
флажков. Я хотел бы, чтобы вы помогли мне в том, как показывать или скрывать только один div за раз.
Есть идея?
Ответ №1:
Вы можете извлечь число из идентификатора, затем вы можете использовать селектор идентификатора, чтобы скрыть div
$(document).on("click" ,'[id^="picChangeAddress"]', function() {
var num = parseInt(this.id.match(/d /)[0],10); //Extract number
$('#divAddressSet' num).toggle();
});
Комментарии:
1. @Jai, Да, но всегда будьте в безопасности.
2. я обычно не использую
.match()
, но, похоже, отличный друг.
Ответ №2:
Вам нужно извлечь номер из идентификатора и использовать его, чтобы настроить правильный селектор:
$(document).on("click" ,'[id^="picChangeAddress"]', function() {
$('div[id="divAddressSet' this.id.substring(16) '"]').toggle();
});
Ответ №3:
Попробуйте это:
$(document).on("click" ,'[id^="picChangeAddress"]', function() {
var o = this.id.split('').pop();
$("#divAddressSet" o).toggle();
});
Комментарии:
1. @RGraham да, хороший улов.