为什么这一行Javascript可以工作,而另一行不行?

为什么这一行Javascript可以工作,而另一行不行?,javascript,jquery,Javascript,Jquery,所以我正在尝试更新div字母的内容。我尝试将元素分配给一个变量,并使用innerHTML更新其内容,但没有成功 var $characterArray = $('#letters'); // The letters div $characterArray.innerHTML = "whatever"; 虽然这样做有效: document.getElementById("letters").innerHTML = "whatever"; 你能告诉我为什么吗?因为你把jQuery和原

所以我正在尝试更新div字母的内容。我尝试将元素分配给一个变量,并使用innerHTML更新其内容,但没有成功

  var $characterArray = $('#letters'); // The letters div
  $characterArray.innerHTML = "whatever";
虽然这样做有效:

  document.getElementById("letters").innerHTML = "whatever";

你能告诉我为什么吗?

因为你把jQuery和原生JS搞混了。jQuery对象没有这样的属性innerHTML-这是一个本机属性

jQuery中的等效方法是html方法


第一个代码段使用jQuery库,而不是vanilla JS,它有不同的方法名来设置元素的内部HTML内容。jQuery的正确用法是:

var $characterArray = $('#letters'); // The letters div
$characterArray.html('whatever');

第一行不是普通的Javascript。它需要名为的JavaScript框架

如果您喜欢依赖jQuery,并在页面中添加了内容,则可以使用:


另外,我假设您不知道jQuery,因为jQuery标记是通过@DarrenSweeney进行的。

如果您真的想针对本机HTML元素编码,可以使用索引来访问它:

var $characterArray = $('#letters')[0]; // The letters div
$characterArray.innerHTML = "whatever";
innerHTML是DOM元素的属性,而$characterArray是jQuery对象。您必须使用.html方法而不是innerHTMLvar$characterArray=$'letters'[0]$characterArray[0]。innerHTML=任何内容;会有用的。
$("#letters").html("whatever");
var $characterArray = $('#letters')[0]; // The letters div
$characterArray.innerHTML = "whatever";