如何将选择器传递给函数

时间:2013-10-25 18:15:43

标签: javascript jquery

我确信这是一个菜鸟问题所以对我来说很容易。我想将一个选择器(如果存在)作为参数传递给一个函数。这就是我的代码:

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。这里的问题是我希望在选择器存在时调用此函数(当前它是动态加载的)。

这会有用吗?或者我需要以不同的方式做到这一点吗?

由于

6 个答案:

答案 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点表示法,则可以使用上述方法制作“插件”