Область переменной в атрибуте onclick с помощью Javascript
-
21-08-2019 - |
Вопрос
Я использую Prototype и пытаюсь динамически получить доступ к переменной в цикле.
Код говорит лучше меня:
for (var i=0;i<5;i++) {
$('parent' + i).insert('<input type="button" value="Cancel" onclick="$('parent' + i).remove()" />', {position: 'after'});
}
Проблема в том, что «я не определен», когда я нажимаю любую кнопку «Отмена».
Как изменить область видимости переменной, чтобы «i» сохраняло правильное значение для каждой кнопки?Меня не интересует никакая работа.
Решение
Я думаю, ты ставил i
в строку в кавычках вместо parent
так что это был не тот уровень масштаба (концептуально).
for (var i=0;i<5;i++)
{
$('parent' + i).insert(
'<input type="button" value="Cancel" onclick="$(\'parent' + i +
'\').remove()" />', {position: 'after'});
}
Другие советы
Вы можете сделать это так -
for (var i = 0; i < 5; i++) {
$('parent' + i).insert('<input type="button" value="Cancel" onclick="$(\'parent' + i + '\').remove()" />', {position: 'after'});
}
Это будет отображаться так:
<input type="button" value="Cancel" onclick="$('parent1').remove()" />
<input type="button" value="Cancel" onclick="$('parent2').remove()" />
<input type="button" value="Cancel" onclick="$('parent3').remove()" />
...
и так далее.
вам не нужна эта переменная.если вы хотите удалить родительский элемент этого ввода, выполните:
<input type="button" value="Cancel" onclick="this.parentNode.parentNode.removeChild(this.parentNode)" />
или если вы действительно очень хотите, вы можете:
for (var i=0;i<5;i++) {
$('parent' + i).insert('<input type="button" value="Cancel" onclick="$(\'parent' + i + '\').remove()" />', {position: 'after'});
}
Не связан с StackOverflow