Sarah Mohammed77 Ответов: 3

Функция onclick функция на JavaScript


Привет всем у меня есть этот код на javascript

for (var i = 0, link; i < 5; i++) {
var div = document. createElement ("div");
var link = document. createElement("a");
link. innerHTML = "ссылка" + i;
link. onclick = функция () {
предупреждение(я);
};
div. appendChild(ссылка);
документ.тела.метода appendChild(div, в);
}

Проблема



Когда вы нажимаете на ссылки, окно предупреждения всегда говорит 5. Что бы вы изменили в javascript, чтобы исправить это?





когда я нажимаю на ссылку это дает мне 5 мне нужно когда я нажимаю на ссылку дайте мне номер ссылки любое тело скажите мне ошибку ??


Я не хочу использовать ссылку.функцию onclick = (событие) { оповещения(событие.цель.innerHTML будет); };

Что я уже пробовал:

Я перепробовал много вещей, но без истинного результата

3 Ответов

Рейтинг:
2

ZurdoDev

Причина, по которой он всегда равен 5, заключается в том, что ваш цикл увеличивает i до 5, и вы предупреждаете ту же переменную.

Вы сказали,

Цитата:
Я не хочу использовать ссылку.функцию onclick = (событие) { оповещения(событие.цель.innerHTML будет); };
А почему бы и нет? Что-то в этом роде является правильным способом сделать это.


Sarah Mohammed77

потому что мне не нужно это решение

ZurdoDev

Это и есть решение. Почему он тебе не нужен?

Рейтинг:
10

Karthik_Mahalingam

попробовать это

for (var i = 0, link; i < 5; i++) {
                
                 var div = document.createElement("div");
                 var link = document.createElement("a");
                 link.innerHTML = "Link " + i;
                 link.onclick = function () {                     
                     alert(this.innerText.split(' ')[1]);
                 };
                 div.appendChild(link);
                 document.body.appendChild(div);
             }


Sarah Mohammed77

не дают результата

Рейтинг:
1

F-ES Sitecore

JavaScript закрытие внутри петли – простой практический пример - переполнение стека [^]

function createlink(i) {
    var link = document.createElement("a");
    link.innerHTML = "Link " + i;
    link.onclick = function () {
        alert(i);
    };

    return link;
}

for (var i = 0, link; i < 5; i++) {
    var div = document.createElement("div");
    var link = createlink(i);
    div.appendChild(link);
    document.body.appendChild(div);
}


Sarah Mohammed77

Я делаю это так, но это все равно дает мне 5

ВАР нам библиотеки и функции = [];
функция createfunc(i) {
возвращенная функция() { консоль.журнала("Мой значение:" + я); };
}
for (var i = 0, link; i < 5; i++)
{
funcs[i] = createfunc(i);
var div = document. createElement ("div");
var link = document. createElement("a");
link. innerHTML = "ссылка" + i;
link. onclick = функция () {
предупреждение(я);
};
div. appendChild(ссылка);
документ.тела.метода appendChild(div, в);
}

F-ES Sitecore

Вы не сделали ничего, что изменило бы ваш код, все, что вы сделали, это добавили вызов функции, ваш проблемный код остается.

Цель состояла в том, чтобы прочитать статью и понять, чему она вас учит, а затем применить это понимание к вашему коду. Вы никогда не будете хорошим разработчиком, просто надеясь, что у кого-то случайного сайта будет случайный код, который вы можете вставить, который волшебным образом исправит ваш код.