我正在尝试创建用户定义$ function,因为我无法在现有项目中使用Jquery。
我想让这个函数像Jquery $('ID')
一样工作请给我一些提示任何提示或示例 例如
function $(element) {
}
var value = $('elementID').value
更新 因为我有prototype.js
function $(element) {
if (arguments.length > 1) {
for (var i = 0, elements = [], length = arguments.length; i < length; i++)
elements.push($(arguments[i]));
return elements;
}
if (Object.isString(element))
element = document.getElementById(element);
return Element.extend(element);
}
答案 0 :(得分:5)
您可以从:
开始function $(id) {
return document.getElementById(id);
}
然而,您最终会发现这还不够好。事实证明,Internet Explorer(旧版本)也会通过名称返回值。换句话说,如果页面上有一个元素,其“name”属性与您正在寻找的“id”匹配,那么您(可能)会得到它。
因此,你必须做更多的工作。我建议检查jQuery或Prototype的源代码,以找到聪明人处理该问题的最先进方法。 编辑在jQuery中哇这很复杂。
答案 1 :(得分:2)
function $(element) {
return document.getElementById(element);
}
此处的演示演示:http://jsfiddle.net/UkMAE/
答案 2 :(得分:2)
2.对于现代浏览器,您可以在场景后面使用它来实现:
var x =document.querySelector(selector)
和querySelectorAll(selector)
编辑:是 - 如果你只需要查找id,getElementById就可以工作,如果你需要更复杂的css选择器 - 你可以使用它。 jQuery在支持时默认为querySelector
答案 3 :(得分:1)
如果您只想要jQuery这样的选择器,请使用Sizzle库:http://sizzlejs.com/
然后在代码中执行以下操作:
var $ = Sizzle;
现在你可以使用:
$("selector");
答案 4 :(得分:1)
我的JS:
var $ = function(element) {
element = document.getElementById(element);
return {
"0": element,
"val": function(text) {
if ( text ) {
console.log(this);
this[0].value = text;
return this;
} else {
return this[0].value;
}
}
};
}
onload = function() {
var myElement = $("someID");
alert(myElement.val("some value").val());
}
我的DOM:
<input id="someID">