2015-09-28 62 views
0

我目前正在加載從flickr API抓取的圖像。簡單的裝載是醜陋的,所以我等待,直到它們全部加載,然後同時顯示它們,使用this page上的第二個示例。然而,使用jQuery,我想香草的JavaScript。我意識到var $ img = $(img)語句只是創建一個對象,但它將已有的html元素轉換爲一個對象,而我不知道如何在vanilla JS中做到這一點。我的圖片是這樣的:

<img src="http://farm1.staticflickr.com/97/219568294_6a7bef5794_m.jpg" onload="loaded(this)"> 

,我的功能是這樣的:

function loaded(img){ 
     var $img = $(img); 
     var total = document.getElementById('flickr').getElementsByTagName('img').length; 
     var percentLoaded = null; 

     $img.addClass('loaded'); 

     var loaded = document.getElementById('flickr').getElementsByClassName('loaded').length; 

     if(loaded == total){ 
      percentLoaded = 100; 
     } else { 
      percentLoaded = loaded/total * 100; 
      document.getElementById("loadingstatus").style.width = percentLoaded + "%"; 
     }; 
    }; 

一旦我找出函數的$ = $()的一部分,我應該能夠輕鬆添加加載類到它。

回答

3

什麼$(an HTML Element Node)返回不是簡單的「一個對象」,它特別是一個jQuery對象。

純DOM相當於直接使用img(並且調用標準的DOM方法而不是jQuery方法)。

+0

謝謝,這對我來說很有意義。我不知道jQuery有自己的對象。 – theovenbird

3

jQuery是隻有在這裏使用一個類添加到img元素,所以真正的問題是「我怎麼添加一個類的元素,而無需使用jQuery的」,得到的回答是這樣的:

img.className += " loaded";