通过Jquery函数传递元素

时间:2012-08-06 13:58:14

标签: jquery function

我一直在反对这个问题,这反映了我基本缺乏理解。

我想收集一个类的所有实例,然后能够拥有一个能够理解调用它的元素实例的函数。

我创建了一个小提琴,http://jsfiddle.net/AKa4s/,它不起作用,只是为了试图解释我的问题。

就像这样,我收集所有div元素&为它分配一个功能:         $( “正方形”。)每个(writeColorpanel);

然后在该函数中我需要调用另一个函数。下一个功能似乎完全不知道谁打电话。我需要来电显示(笑话)。

问题是我最终为不同的div运行相同的计算,并重复该功能,以便我可以根据结果将css应用于每个div。

2 个答案:

答案 0 :(得分:1)

你做得太复杂了。

jQuery(document).ready(function($) {


// run the function for every div
$(".square").each(function(i) {

    $('.output').eq(i).val(multiplyColor($(this).val()));
    //Show the output to the 1st/2nd/3rd output (that's where eq comes from
    //As for the value, I call a function and pass a parameter to do the calculations

    //Now if you want to call another function you need to pass the element itself as a parameter;
    alertMyId($(this));
});

function alertMyId(elem) {
   //elem has now all the same properties as if you were in the "each" function      
    alert(elem.attr('id'));

}

//Ideally if you just want to calculate something, you should just pass along the value you want to calculate
function multiplyColor(value) {
  var color = 3;
  return  value * color;
}

}); 请检查此fiddle

此外,您不能使用具有相同ID的不同html元素。改为使用类。

答案 1 :(得分:0)

是这样的:

$(function() {
    $(".square").each(function(i,e) {
        writeColorpanel(i,e);
    });

    function writeColorpanel (i, elem) {
       color=3;        
       onColorChange(elem, color);
    }

    function onColorChange(elem, color) {
       var m = elem.value
       var q = m*color;
       $('#output_'+elem.id).val(q);
    }
});

FIDDLE