2010-07-10 67 views

回答

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

两种方式都是绝对的标准。在DOM级别1 HTML中指定了'src' /'alt' /'title'。我会在'setAttribute'上推荐这些属性,因为访问这些属性的读取要清晰得多,并且在IE中对于getAttribute' /'setAttribute'存在严重的错误,其中DOM属性与HTML属性不同。 – bobince 2010-07-10 21:40:42

+0

我个人使用DOM 0风格的直接属性设置自己,是的,有错误。 – 2010-07-10 21:41:48

+0

谢谢你对这个问题bobince的额外澄清。 – computersaurus 2010-07-19 13:07:52

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 2010-07-10 20:59:18

+1

在这个有限的情况下,是的,但总的来说不是,IE在'getAttribute' /'setAttribute'方面有很多问题,所以如果可能的话,你应该避免**这些方法。 NB。在很多情况下属性和属性是不同的东西!在这种情况下,设置'.src'时的行为与设置属性'src'相同,但读取它时将返回属性指向的完整URL,这对于相对URL是不同的。 (由于上述的错误,在IE中不会发生这种情况。) – bobince 2010-07-10 21:42:07

+0

@computersaurus bobince,是正确的。 IE实现有几个错误。我知道的是'src/href' url的相对性,'''','style'和'class'。 – galambalazs 2010-07-10 22:32:03

4

在完全相同的方式..

document.getElementById('main_image_id').title = 'new title' 
document.getElementById('main_image_id').alt = 'new alt'