为什么不能使用 document.getElementById 来替换 JavaScript 中的 $
Why can't use document.getElementById to replace $ in JavaScript?
我是JavaScript的新手,我使用一段代码将JSON转换为HTML表。
这是JavaScript代码:
function buildHtmlTable(myList,printSource,tablename) {
var columns = addAllColumnHeaders(myList);
var title = document.getElementsByTagName("caption");
title.innerHTML="<h>"+printSource+"</h>";
for (var i = 0 ; i < myList.length ; i++) {
var row$ = $('<tr/>');
for (var colIndex = 0 ; colIndex < columns.length ; colIndex++) {
var cellValue = myList[i][columns[colIndex]];
if (cellValue == null) { cellValue = ""; }
row$.append($('<td/>').html(cellValue));
}
$("#excelDataTable").append(row$);
}
}
// Adds a header row to the table and returns the set of columns.
// Need to do union of keys from all records as some records may not contain
// all records
function addAllColumnHeaders(myList) {
var columnSet = [];
var headerTr$ = $('<tr/>');
for (var i = 0 ; i < myList.length ; i++) {
var rowHash = myList[i];
for (var key in rowHash) {
if ($.inArray(key, columnSet) == -1){
columnSet.push(key);
headerTr$.append($('<th/>').html(key));
}
}
}
$("#excelDataTable").append(headerTr$);
return columnSet;
}
这是我的HTML代码:
<body onload="buildHtmlTable(data_epgd, epgd);">
<table id="excelDataTable" border="1">
<caption>sn</caption>
</table>
</body>
如您所见,有 $("#excelDataTable")
的用法。我认为这就像document.getElementById
函数一样,在我使用document.getElementById
替换元素 HTML.So 中找到一个元素。但是当我这样做时,代码不再起作用了。那么有人可以解释一下document.getElementById(excelDataTable)
和$("#excelDataTable")
有什么区别吗?为什么我不能使用document.getElementById(excelDataTable)
作为替代品?
使用 $()
实际上不仅仅是一个选择器,它还将其包装在 jQuery 对象中。稍后在你的脚本中使用jQuery函数,如.append
,而这些函数不适用于原版对象。你可以做的是定期选择它,当你需要jQuery函数时,你再次包装($()
)它。
此外,选择器应该是一个字符串('element'
)而不是一个变量(element
),就像弗雷德提到的那样。
下面的行将返回一个 jQuery 对象
$("#excelDataTable")
同时使用
document.getElementById(excelDataTable)
将返回一个 DOMElement 对象,该对象显然没有 jQuery 方法。
jQuery也接受要传递给构造函数的DOM元素。因此,最终您可以这样做
$(document.getElementById(excelDataTable))
$()
是 jQuery() 的简写。 它实际上是一个返回jQuery兼容对象的集合的函数,以便jQuery函数可以用于这些元素,如append(),empty()和$()通常用作Jquery中的选择器函数,但它不仅仅是一个选择器...
-
我们可以给它传递一个选择器,从 DOM 获取包装到 jquery 对象集合中的匹配元素集合。像
$('.btnClass'),$('#id'),$('table')
. -
我们可以传递给它一串 HTML 以转换为 DOM 元素,然后您可以将其用于文档中。
3.我们可以向它传递一个 DOM 元素或您想要用 jQuery 对象包装的元素。
有关更多详细信息,请参阅文档文档
- 如何替换JavaScript字符串中除字母和数字之外的所有内容(空格/符号)
- 用Javascript按钮替换Javascript超链接
- Firebase推送;t添加但替换(JavaScript)
- 如何替换javascript字符串中的前三个连字符
- 用jquery替换javascript语法
- jQuery.html()赢得't替换javascript图表
- 如何替换javascript canas
- 替换 JavaScript 中的一些字符串
- 替换Javascript中包含星号的字符串
- 随机替换 JavaScript 或 jQuery 中文本块中的子字符串
- 替换 JavaScript 中出现的所有字符串不起作用
- 为什么不能使用 document.getElementById 来替换 JavaScript 中的 $
- 合并/替换Javascript数组
- 无法替换Javascript中对象数组的键
- 可以用两个搜索值替换JavaScript.replacement函数
- 字符串替换javascript
- 正则表达式:替换javascript中的字符串
- 替换javascript中拆分后的值
- regex替换javascript返回整个值
- 用正则表达式替换javascript