我怎麼能寫出下面的代碼作爲一個jQuery:如何在jquery下面編寫代碼?
var imagefile = document.getElementsByClassName("fileImage");
var filename = imagefile.files[0];
我嘗試這下面,但它說,即使我已經說過文件輸入的類別是fileImage「沒有定義。
var filename = $('.fileImage').files[0];
我怎麼能寫出下面的代碼作爲一個jQuery:如何在jquery下面編寫代碼?
var imagefile = document.getElementsByClassName("fileImage");
var filename = imagefile.files[0];
我嘗試這下面,但它說,即使我已經說過文件輸入的類別是fileImage「沒有定義。
var filename = $('.fileImage').files[0];
因爲.files[]
不是jQuery的一部分。
你不能直接做imagefile.files[0]
因爲
document.getElementsByClassName("fileImage")
//and
$('.fileImage')
回報項目「陣列式」列表中。 (據我所知,getElementsBy*
功能,除了getElementsById
,返回NodeList
)
你需要通過他們第一次迭代,你files[0]
之前。
爲純JS方法:
for(var i=0; i < imagefile.length;i++){
var imgfile = imagefile[i];
//now imgfile is the DOM element itself
imgfile.files[0];
}
爲jQuery的,要鏈接.each()
$('.fileImage').each(function(){
//"this" in here is the DOM element
this.files[0];
})
由$返回的jQuery對象()函數沒有一個.files屬性 - 該屬性屬於DOM元素。嘗試:
var filename = $('.fileImage')[0].files[0];
這仍然會給出錯誤,如果沒有元件選擇器匹配,否則它使用jQuery對象上的方括號數組語法去的第一匹配元素的引用。
如果你想測試,如果任何元素匹配選擇使用jQuery的對象。長度屬性:
var $files = $('.fileImage'),
filename;
if ($files.length > 0) {
filename = $files[0].files[0];
// do something with filename...
}
發表您的HTML。 – DG3 2012-04-19 02:11:59
$('。fileImage')是一個數組 – 2012-04-19 02:14:29
@dan_l:在技術上類似於數組。 – josh3736 2012-04-19 02:16:21