Как установить "имя" Javascript при нажатии на ссылку?

Когда я нажимаю кнопку, она выполняет функцию, я пытаюсь сделать так, чтобы имя: "" вводилось при нажатии кнопки.

Я добавил name="item1" внутри тега, но это не дает желаемого результата.

<img onclick="addbeat()" name="item1" src="button.png"/>

<script>
function addbeat() {
simpleCart.add({
     name: "",
     price: .99
 });
}
</script>

3 ответа

Решение

Обновление для ясности

У вас есть 2 варианта здесь. Если вы используете встроенный обработчик событий, то вы можете передать объект события в ваш обработчик щелчков и получить доступ к изображению, которое было щелкнуто с помощью event.target, вот так:

<img onclick="addbeat(event)" name="item1" src="button.png"/>

<script>
function addbeat(event) {
simpleCart.add({
     name: event.target.name,
     price: .99
 });
}
</script>

Предпочтительным вариантом (как указано в окружающем обсуждении) было бы программно прикрепить ваш обработчик кликов - в этот момент вы можете использовать любой из event.target или же this,

<img id="anImage" onclick="addbeat(event)" name="item1" src="button.png"/>

<script>
function addbeat() {
simpleCart.add({
     name: this.name,
     price: .99
 });
}

document.getElementById('anImage').onclick = addbeat;
</script>

Вы используете событие, так что вы можете использовать this ключевое слово.

simpleCart.add({
     name: this.name,
     price: .99
});

Кроме того, я настоятельно рекомендую отойти от встроенных событий. Это грязно и приводит к нечитаемому коду. Используйте обработчик событий!

var x = document.getElementById("imgTag"); //add id to HTML element
x.addEventListener("click", addbeat, false);

Я не уверен, что понял ваш вопрос, но:

<img onclick="addbeat(this.name)" name="item1" src="button.png"/>

<script>
    function addBeat(name)
    {
        simpleCart.add({
            name: name,
            price: .99
        });
    }
</script>

Это помогает?

Другие вопросы по тегам