我确信这是一个菜鸟问题所以对我来说很容易。我想将一个选择器(如果存在)作为参数传递给一个函数。这就是我的代码:
function updateLinkedElements(element) {
process the element;
}
// Ensure that the related elements is set properly on initialization.
$('#edit-type-config-associated-element').updateLinkedElements(this);
我想将#edit-type-config-associated-element标识的选择器传递给函数updateLinkedElements。这里的问题是我希望在选择器存在时调用此函数(当前它是动态加载的)。
这会有用吗?或者我需要以不同的方式做到这一点吗?
由于
答案 0 :(得分:2)
您可以使用该语法,但您必须创建一个jQuery插件来执行此操作。例如:
(function($){
$.fn.updateLinkedElements = function() {
return this.each(function() {
// use $(this) to access any elements matched by the selector
});
};
})(jQuery);
答案 1 :(得分:1)
要使用这样的方法,你可以使它成为一个jQuery插件:
$.fn.updateLinkedElements = function(){
return this.each(function(i, el){
// process element el
});
};
用法:
$('#edit-type-config-associated-element').updateLinkedElements();
答案 2 :(得分:0)
你为什么不这样做:
updateLinkedElements($("#edit-type-config-associated-element"));
答案 3 :(得分:0)
不,因为你的函数不是jQuery对象的方法。只是做:
updateLinkedElement($('#edit-type-config-associated-element')
如果事实证明你要使用选择器中的多个元素来执行此操作,请使用each() http://api.jquery.com/each/
然后它会变成:
$(<selector>).each(function() { updateLinkedElement(this); });
答案 4 :(得分:0)
仅使用$('#edit-type-config-associated-element')
作为选择器
答案 5 :(得分:0)
你可以用一个对象的参数调用以上述方式定义的函数做两件事 - 将该选择器作为字符串传递并将该元素作为目标...
updateLinkedElements('#edit-type-config-associated-element');
或者其次先获取元素并将该对象作为参数传递给函数
var el = document.getElementById('#edit-type-config-associated-element');
updateLinkedElements(el);
如果您希望使用jquery点表示法,则可以使用上述方法制作“插件”