JS input 图片,获取获取问题件

前端input 是这样的

<input id='dealer_shop_outdoor' name='dealer_shop_outdoor' type="file">
						   

js 代码是这样的

$('#buttom').submit(function(){
			
			dealer_shop_outdoor=$("#dealer_shop_outdoor").files[0];
}

也试过
 $('#buttom').submit(function(){
			
			dealer_shop_outdoor=$("#dealer_shop_outdoor").file[0];
}

Chrome显示

Cannot read property '0' of undefined

 

然后进一步报错

DOMException: Failed to execute 'querySelectorAll' on 'Element': '*,:x' is not a valid selector.

啥意思, file/files 需要定义么?我看网上都这么直接用了。。为啥我的会报错。。

你把jQuery元素,跟html的dom元素搞混了。

你看到的files[0] 这是js的写法,你要用js原生的dom对象获取。你可以直接执行我这个html就可以了。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>测试</title> 
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
  $("button").bind('click',function(){
			var dealer_shop_outdoor=$("#dealer_shop_outdoor")[0].files[0];
	  alert(dealer_shop_outdoor);
  });
});
</script>
</head>
<body>

<input id='dealer_shop_outdoor' name='dealer_shop_outdoor' type="file">
	<button id="button" type="submit" >提交</button>

</body>
</html>

 

建议首先看看$("#dealer_shop_outdoor")对象是不是有值,也可以用debug去跟踪下返回什么?再去分析 下一步操作

<input id='dealer_shop_outdoor' name='dealer_shop_outdoor' type="file" onchange="updalodFile(this)">

<script>
function updalodFile(obj){
    obj.files[0]
}
</script>

 

dealer_shop_outdoor=$("#dealer_shop_outdoor")[0].files

dealer_shop_outdoor = $("#dealer_shop_outdoor")[0].files[0];



files是Dom对象的属性,而$("#dealer_shop_outdoor") 返回的是jQuery对象。
jQuery对象设置/获取Dom对象的属性要用prop()方法。
            dealer_shop_outdoor=$("#dealer_shop_outdoor").prop("files")[0];

或者把jQuery对象转化为Dom对象,再获取Dom对象的属性
            dealer_shop_outdoor=$("#dealer_shop_outdoor")[0].files[0];

            dealer_shop_outdoor=$("#dealer_shop_outdoor").get(0).files[0];
都可以

 

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
	<title> 页面名称 </title>
</head>
<body>
<script type="text/javascript" src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>
<input id='dealer_shop_outdoor' name='dealer_shop_outdoor' type="file">
						   
<script type="text/javascript">
$("#dealer_shop_outdoor").change(function(event) {
	var dealer_shop_outdoor1 = $("#dealer_shop_outdoor").prop("files")[0];
	var dealer_shop_outdoor2 = $("#dealer_shop_outdoor")[0].files[0];
	var dealer_shop_outdoor3 = $("#dealer_shop_outdoor").get(0).files[0];
	console.log(dealer_shop_outdoor1);
	console.log(dealer_shop_outdoor2);
	console.log(dealer_shop_outdoor3);
});
</script>
</body>
</html>