2010-07-10 2 views
6

У меня есть уменьшенное изображение, которое при нажатии меняет более крупное изображение на странице. У меня есть эта часть кода, работающая, просто изменив .src с помощью onclick. Есть ли способ изменить атрибуты alt и title с помощью onclick?Сменить картинку alt с помощью Javascript onclick

ответ

7

Вы можете использовать setAttribute или задать вопрос непосредственно. В любом случае, setAttribute является стандартным способом DOM делать это.

el.onclick = function() { 
    var t = document.getElementById('blah'); 

    // first way 
    t.src = 'blah.jpg'; 
    t.title = 'new title'; 
    t.alt = 'foo'; 

    // alternate way 
    t.setAttribute('title', 'new title'); 
    t.setAttribute('alt', 'new alt'); 
    t.setAttribute('src', 'file.jpg'); 
} 
+2

Оба способа абсолютно стандартны. 'src' /' alt'/'title' указан в DOM Level 1 HTML. Я бы рекомендовал эти свойства над 'setAttribute', потому что доступ к ним гораздо понятнее, и в IE существуют серьезные ошибки для' getAttribute'/'setAttribute', где свойства DOM отличаются от атрибутов HTML. – bobince

+0

Я лично лично использую стиль прямого свойства DOM 0, и да, есть ошибки. –

+0

Благодарим вас за дополнительное разъяснение по этому вопросу bobince. – computersaurus

3
img.onclick = function() { 
    // old fashioned 
    img.src = "sth.jpg"; 
    img.alt = "something"; 
    img.title = "some title"; 
    // or the W3C way 
    img.setAttribute("src", "sth.jpg"); 
    img.setAttribute("alt", "something"); 
    img.setAttribute("title", "some title"); 
}​; 

Примечание: Независимо от того, какой из них вы используете до тех пор, как вы имеете дело со стандартными атрибутами.

+0

С точки зрения совместимости с браузером, стиль «старомодный» и «W3C» одинаковый? – computersaurus

+1

В этом ограниченном случае да, но в общем случае нет, IE имеет много проблем с 'getAttribute' /' setAttribute', и поэтому вы должны ** избегать ** этих методов, если это вообще возможно. в северном направлении Атрибуты и свойства во многих случаях разные. В этом случае '.src' при настройке ведет себя так же, как установка атрибута' src', но при чтении он вернет полный URL-адрес, на который указывает атрибут, который будет отличаться для относительных URL-адресов. (Этого не произойдет в IE из-за вышеупомянутой ошибки.) – bobince

+0

@ computerputaurus bobince, это правильно. Есть пара ошибок с реализацией IE. Я знаю, что относительная релятивность 'src/href',' for', 'style' и' class'. – galambalazs

4

Точно таким же образом ..

document.getElementById('main_image_id').title = 'new title' 
document.getElementById('main_image_id').alt = 'new alt' 
Смежные вопросы