2010-03-18 2 views
1

Я очень новичок в js, любезно помогу мне с этим.document.getElementById не работает для <a> tag

Я пытаюсь добавить класс в тег, используя onClick.

Код, как показано ниже:

<a class="gkvSprite" href="#" id="abc" onClick="showhide('1')">Click 1</a> 
<a class="gkvSprite" href="#" id="def" onClick="showhide('2')">Click 2</a> 
<a class="gkvSprite" href="#" id="hij" onClick="showhide('3')">Click 3</a> 

Теперь, когда я нажимаю, мне нужно добавить класс под названием «выбрано» для одного я выбрать. Я попытался использовать setAttribute и добавить класс jquery, но не был успешным

Когда я оповещает document.getelementbyId (123), он выдает ссылку.

Может ли кто-нибудь мне помочь?

Спасибо заранее
Alloi

+0

@Kartik попробуйте добавить item_number, он будет работать – ant

ответ

1

Не просматривая код для showhide, вы не можете точно видеть, что вы делаете неправильно. Так как вы уже JQuery, вот как сделать то, что вы описываете с ним:

$('.gkvSprite').click(function() { 
    $(this).addClass('selected'); 
}); 

Стоит также отметить, что это недопустимый начать идентификатор с номером.

+0

document.getElementById ('abc'). Setattribute ("className", "some_class_name"); Я выполняю вышеуказанный код. Когда я предупреждаю document.getElementById ('abc'), он показывает http: // localhost/gkv/#, а не как объект. – Alloi

+0

Спасибо большое :) – Alloi

+0

Функция 'setAttribute' и чувствительна к регистру. С этим изменением ваш код работает для меня. Также обратите внимание, что когда вы используете 'alert', вам отображается« значение »элемента ссылки. Если вместо этого вы используете 'console.log', который вы всегда должны делать для отладки, вы увидите, что это фактически весь элемент DOM. –

7

id следует начинать с алфавита.

Official specification

идентификатор и имя маркеры должны начинаться с буквы ([A-Za-Z]) и может следовать любое количество букв, цифр ([0-9]), дефис («-»), подчеркивания («_»), двоеточия («:») и периоды («.»).


Кроме того,

var element = document.getElementById('id'); 
element.className += "newClass"; 

showhide() должен сделать что-то, как и выше.

+0

Я изменил это на алфавиты, но его по-прежнему тот же результат – Alloi

+0

Теперь он работал. Большое спасибо! :) – Alloi

Смежные вопросы