当选择器分配给变量时,我需要在onclick
上获取该变量名称我已创建Fiddle作为示例
var $main_img1 = $("<div/>").addClass('add1').appendTo($('#main_container'));
var $main_img2 = $("<div/>").addClass('add2').appendTo($('#main_container'));
$main_img1.click(function()
{
get_id()
});
$main_img2.click(function()
{
get_id()
});
function get_id(event)
{
console.log($(this))
alert('i need to get selector variable on click')
}
当我点击相应的div时,输出应为 $ main_img1 和 $ main_img2
答案 0 :(得分:2)
这是一个解决方案,但不确定您将如何使用它
使用Array获取变量名称。
JS
var arr = new Array();
arr[0] = '$main_img1';
arr[1] = '$main_img2';
var $main_img1 = $("<div/>").addClass('add1 add').appendTo($('#main_container'));
var $main_img2 = $("<div/>").addClass('add2 add').appendTo($('#main_container'));
$main_img1.click(function()
{
get_id($(this))
});
$main_img2.click(function()
{
get_id($(this))
});
function get_id(event)
{
alert(arr[$('.add').index(event)]);
}
更新:无需数组。
function get_id(event)
{
///var temp = '$main_img' + (parseInt($('.add').index(event)) + 1);
var temp = '$main_img' + (parseInt($('#main_container > div').index(event)) + 1);
alert(temp);
console.log(eval(temp));
}
答案 1 :(得分:0)
我建议一个解决方法..看看它是否对你有帮助。在相应的div中添加一个隐藏元素,并将变量名称作为文本添加到其中。我稍微修改了你的方法get_id(),以从你的div隐藏元素中获取变量名。
function get_id()
{
console.log($(this))
var selVar= $(this).parent().find('input:hidden:first').text();
alert('selector variable' + selVar);
}
这对你有用。
答案 2 :(得分:0)
你可以从你点击它的元素的类中猜测并使用反身性。
要了解您点击它的元素,只需使用event.target
,其中event
是click
函数中传递的变量。请查看此fiddle以获取示例。
get_id
方法现在看起来像这样:
function get_id(event) {
console.log(event.target)
}
event.target
返回的值与您声明的变量($main_img1
或$main_img2
)返回的值相同。