纯/本机javascript中这段代码的等价物是什么?

时间:2016-05-30 08:54:47

标签: javascript jquery

<label class="file">File</label>
<input class="none" type="file">

jQuery的:

$('.file').click(function(){ $('.none').click();});

2 个答案:

答案 0 :(得分:6)

你可以试试这个

var _file = document.getElementsByClassName('file'); //Return a NodeList
var _none =  document.getElementsByClassName('none');
for(var x = 0;x<_file.length;x++){
  (function(x){   //Creating closure 
   _file[x].addEventListener('click',function(){
   console.log(x)
     document.getElementsByClassName('none')[x].click();
   })
 }(x))
}

jsFiddle

修改

如果有多个具有相同类别的元素

<property name="src.dir" value="test"/>

Demo2

答案 1 :(得分:0)

这可能是最准确的等价物:

document.querySelector(".file")
    .addEventListener("click", function(){
  document.querySelector(".none").click();
});

要获得.click()的更多跨浏览器替代方案:How can I trigger a JavaScript event click