我一直在反对这个问题,这反映了我基本缺乏理解。
我想收集一个类的所有实例,然后能够拥有一个能够理解调用它的元素实例的函数。
我创建了一个小提琴,http://jsfiddle.net/AKa4s/,它不起作用,只是为了试图解释我的问题。
就像这样,我收集所有div元素&为它分配一个功能: $( “正方形”。)每个(writeColorpanel);
然后在该函数中我需要调用另一个函数。下一个功能似乎完全不知道谁打电话。我需要来电显示(笑话)。
问题是我最终为不同的div运行相同的计算,并重复该功能,以便我可以根据结果将css应用于每个div。
答案 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);
}
});