动态jQuery方法链

时间:2016-01-18 19:52:41

标签: javascript jquery

所以,我确信答案很简单,但我试图弄清楚如何将一系列jQuery方法作为一个争论传递给一个函数。我们的想法是在DOM对象上执行的方法可以是动态的。我正在尝试编写一些qUnit测试,其中集中这种功能将是有用的。例如:

function changeElement(el, methods){
  $(el).methods;
}

var elMethods1 = $(this).is('visible');
var elMethods2 = $(this).css('background', 'blue').append('appended text');

var el1 = $('.container1');
var el2 = $('.container2');

var result1 = changeElement(el1, elMethods1); // expect to return true/false
console.log(result1);

var result 2 - changeElement(el2, elMethods2); // expect to return DOM object
console.log(result2);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div class='container1'></div>
<div class='container2'></div>

1 个答案:

答案 0 :(得分:1)

您可以将每个方法字符串编写为一个简短的函数,如下所示:

var elMethods1 = function(jq) { return jq.is('visible'); }
var elMethods2 = function(jq) { return jq.css('background', 'blue').append('appended text'); }

var el1 = $('.container1');
var el2 = $('.container2');

var result1 = elMethods1(el1); // expect to return true/false
console.log(result1);

var result2 = elMethods2(el2); // expect to return DOM object
console.log(result2);