为什么我不能在JS和jQuery中使用相同的变量?

时间:2017-09-06 05:29:32

标签: javascript jquery

为什么我不能在JS和jQuery中使用相同的变量? 例如:

var elHTML = '<div></div>';
var el = document.getElementById('elementFirst'); //js code
el.innerHTML = elHTML; //js code
//it works!

如果我改变这样的代码..

var elHTML = '<div></div>';
var el = $('#elementFirst'); //jQuery code
el.innerHTML = elHTML; //js code
//not work!

或者

var elHTML = '<div></div>';
var el = document.getElementById('elementFirst'); //js code
el.html(elHTML); //jQuery code
//not work!

在最后两个代码中#elementFirst没有发生任何事情

感谢提前回答

2 个答案:

答案 0 :(得分:4)

由于$()不会返回HTMLElement,而DOM element包含jQuery object。 jQuery的功能只能用于jQuery objects

在第二种情况下,使用innerHTML属性,该属性在jQuery的对象中不存在。

在第三种情况下,您使用html()函数,这是一个jQuery函数,但您已将其与HTMLElement一起使用。

查看示例。

您可以在innerHTMLjQuery objecthtml函数中看到DOM element属性不存在。

&#13;
&#13;
var jEl = $('#elementFirst');
console.log('innerHTML' in jEl);

var domEl = document.getElementById('elementFirst');
console.log('html' in domEl);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='elementFirst'></div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

var elHTML = '<div>Hello</div>';
var el = $('#elementFirst'); //jQuery code
el.get(0).innerHTML = elHTML;

基本上你使用.get(0)从jQuery过渡到普通的JavaScript