我想使用jquery创建HTML元素,如:
var $ele = $('<select>',{name: name, class: className});
并希望将自定义函数绑定到该元素,如:
$ele.testFun = function () {
return this.val();
};
我希望像以下那样使用该功能:
$ele.testFun();
那么,我怎么能尝试得到那个结果呢。
答案 0 :(得分:2)
你可以这样做:
some_metric
&#13;
答案 1 :(得分:2)
$hide
会将一个函数绑定到元素周围的jQuery包装器,而不是元素。它会在您使用$ele.testFun = ...
时起作用;如果你得到另一个jQuery包装器,或者当你在元素本身上调用它时,它将无法工作。
$ele
会将函数绑定到元素本身。
如果您希望能够对任何jQuery包装器(而不是专门的$ele.get(0).testFun = ...
)说$ele.testFun()
,则需要通过定义$ele
来创建jQuery扩展。
答案 2 :(得分:1)
您要做的是创建一个自定义jQuery插件。
您需要将方法添加到jQuery的原型对象中,以便jQuery对象实例可以访问它们
$.fn.testFun = function () {
return this.val();
};
答案 3 :(得分:0)
您可以按照以下方式执行类似的操作:
$.fn.create = function(tagName, attributes)
{
var attributeString = '';
for(attribute in attributes)
{
attributeString += attribute + '="' + attributes[attribute] + '" ';
}
return $(this).append('<' + tagName + ' ' + attributeString + '></' + tagName + '>');
};
然后按如下方式使用:
var $ele = $('body').create('select',{name: name, class: className});