回答
可能最簡單的/最簡單的辦法:
function $(id) { return document.getElementById(id); };
當你已經看到了做$()函數,它可能是一些庫,如jQuery或Prototype。 $函數不是的document.getElementById的別名,但是擴展功能的功能性的包裝。
要創建您自己的包裝,你可以寫一個函數「別名」:
var alias = document.getElemenyById;
或
function alias(id) { return document.getElementById(id); }
不過說真的,我會用如jQuery或原型可用庫之一。
+1,但你應該解釋,創建一個「別名」的原因是這麼簡單,因爲在任何條件下/使用JavaScript具有一流的功能 – annakata 2009-06-05 16:24:36
將這個別名永遠不會在IE6/7工作?我今天在一些較舊的代碼中遇到了問題,通過用document.getElementById替換別名來解決問題。我實際上使用了上面第二種類型的函數「別名」。有任何想法嗎? – 2009-06-12 05:01:05
此答案的'var alias = document.getElementById'部分不正確。這裏演示的創建別名在Firefox或Google Chrome中不起作用。有關更多信息,請參閱http://stackoverflow.com/questions/1007340。 – 2009-06-17 21:28:10
這裏的東西我在我自己的圖書館使用。 DOM
是類和$
是一個函數,它是一個快捷方式實現getElementById
功能:
function DOM()
{
this.$ = function(elementIDs)
{
var el;
// If an array of element names is passed.
if (arguments.length > 1)
{
var elements = [];
var length = arguments.length;
for (var i = 0; i < length; i++)
{
// Call this function recursively for each passed parameter.
elements.push(this.$(arguments[i]));
}
return elements;
}
// If a single element name is passed.
if (typeof(elementIDs) == "string")
{
el = document.getElementById(elementIDs);
}
return el;
}
}
用法:
var el = new DOM().$("elementID");
你可以別名,從而頂層窗口元素。
你爲什麼使用一個沒有任何狀態的構造函數?它應該是`var DOM = {'$':function(ids){...}}`。另外,你的答案比詢問的要多得多,OP要求給document.getElementById一個別名。如果你想jQuery的行爲,只需使用jQuery而不是重新發明輪子 – 2011-03-01 20:00:33
function $(s) {
return document.getElementById(s) ? document.getElementById(s) : "";
}
$("myId");
這假定您只想使用美元函數(選擇器)來獲取ID。我沒有測試,但它應該工作。
我最後一次看的jQuery的核心,它把一個字符串作爲參數,然後使用正則表達式來確定它是什麼樣的選擇的。
@ hal10001:這'聞起來'對我來說很可怕。調用document.getElementById()兩次看起來很浪費,這個函數返回一個HTMLElement或一個String。那麼'return document.getElementById(s)'怎麼樣?' ? – 2009-06-17 21:34:46
facebook's connect-js確實在src/core/prelude.js如下:
if (!window.FB) {
FB = {
// ...
$: function(id) {
return document.getElementById(id);
}
// ...
}
}
然後,要使用它,他們這樣做:
FB.$('name-of-id');
初始塊創建全局對象FB。他們使用這個對象,FB,爲命名空間和定義在它所有的對象,屬性和功能。這樣,只要其他代碼不使用全局對象FB,它就可以與其他JavaScript代碼一起工作。
var $ = document.getElemenyById.bind(document);
在ES6引入的新功能讓我們提高克里斯·勞埃德的回答,簡化:
function $(id) { return document.getElementById(id); };
到:
const $ = id=> document.getElementById(id);
- 1. 如何在javascript中製作別名
- 2. JavaScript document.getElementById()不工作
- 3. javascript document.getElementById不工作
- 4. javascript document.getElementById(「device」)不起作用?
- 5. JavaScript的PHP內不工作(的document.getElementById)
- 6. JavaScript - 帶onClick的document.getElementByID
- 7. Javascript函數document.getElementById()
- 8. IE javascript - document.getElementById
- 9. javascript停止在document.getelementbyid後
- 10. 在JavaScript中使用document.getElementById
- 11. 在Javascript中更改document.getElementById
- 12. Javascript document.getElementById似乎沒有工作
- 13. 的JavaScript的document.getElementById返回null
- 14. 的javascript「的document.getElementById未定義」
- 15. document.getelementbyid不工作
- 16. document.getElementById不工作
- 17. 如何在C++(在彙編級別)製作別名?
- 18. document.getElementById在Mozilla中不工作
- 19. document.getElementById不在FBJS工作
- 20. 製作了臨時的別名刪除
- 21. Apache的別名:製作快捷方式
- 22. 屬性別名在JavaScript中
- 23. 的Javascript:無法轉換的document.getElementById(字段名).label反對
- 24. 'document.getElementById()'和'document.getElementById'之間是否有區別,圓括號可以有什麼區別?
- 25. document.getElementById(somevar)不工作
- 26. document.getElementById(「」).src不工作?
- 27. 的document.getElementById在IE
- 28. 的document.getElementById(...)在Firefox
- 29. jquery $('#my_id')和document.getElementById('my_id')之間的區別?
- 30. 自定義javascript document.getElementById()方法?
一個聰明的問題會一直詢問如何創建別名*在任何深度*;例如`的document.getElementById(「示例」)。標籤(「格」)',雖然像往常一樣,我會問這個問題,並最終有它標記爲一個DUP一個DUP。 – John 2018-02-26 12:04:29