为什么Jquery不允许我这样做

时间:2009-10-08 23:27:54

标签: javascript jquery

document.getElementById("main").src = '02.jpg';

作品

$('#main').src = '02.jpg';

4 个答案:

答案 0 :(得分:9)

$("#main").attr("src", "02.jpg");

答案 1 :(得分:7)

$('#main')返回一个jQuery对象,而不是HTMLElement,因此在jQuery对象上没有定义src属性。您可能会发现this article有用。

迈克已经展示了一种设置src属性的方法(他展示的方式可能被认为是最像jQuery的方式)。其他两种方式

$("#main")[0].src = '02.jpg';

$("#main").get(0).src = '02.jpg';

答案 2 :(得分:1)

  

$('#main')。src = '02 .jpg';

从$(...)获取的jQuery包装器不会重现它包装的DOM对象的所有属性和方法。您必须在包装器对象上坚持使用特定于jQuery的方法:在本例中,由Mike详细说明attr

与jQuery相比,'prototype'库扩充了现有的DOM对象而不是包装它们。因此,除了新的方法和属性之外,您还可以获得.src之类的旧方法和属性。这两种方法都有优点和缺点。

答案 3 :(得分:0)

$("#main")是搜索匹配的集合。 document.getElementById("main")是一个DOM元素 - 它具有src属性。如果要为attr(x,y)返回的集合中的所有元素设置某些属性,请使用$(x)方法,即使这只是getElementById(x)中的单个元素。

它类似于intint[]之间的区别 - 非常不同的野兽!