下午全部
我有一些数据 -
var searchwithin = [
{id:"clearwithin", type:"button"},
{id:"search_radius", type:"select"},
{id:"for_lease" ,type:"checkbox"},
{id:"for_sale", type:"checkbox"},
];
它将根据点击的内容显示和隐藏信息(这只是数据的一小部分。
我已经研究过如何检查type属性,我想知道的是:
如果类型是按钮,我如何访问这些项的id值,然后生成一个click函数,以便使用id作为按钮的名称来关联该函数。
提前致谢
菲尔
答案 0 :(得分:0)
连接'#'和id属性,并使用结果字符串作为选择器。
$.each($.grep(searchwithin, function(i) { return i.type=='button'; }),
function () {
var item = this;
$('#'+this.id).bind('click', function(e) {
alert('clicked: ' + item.id +' '+ item.type);
});
});
考虑使用选择器来查找元素而不是ID映射。
$('input[type="button"].search').bind('click', onSearch);
答案 1 :(得分:0)
首先,通过删除表中最后一项之后的逗号来修复searchwithin
表中的语法错误。这将导致IE6 / IE7中的错误。
然后,您可以使用此代码查看searchwithin
数组,找到相应id
的{{1}},然后为type
设置点击事件处理程序
id
我注意到您的表有两个var searchwithin = [
{id:"clearwithin", type:"button"},
{id:"search_radius", type:"select"},
{id:"for_lease" ,type:"checkbox"},
{id:"for_sale", type:"checkbox"}
];
function findIdByType(target) {
for (var i = 0; i < searchwithin.length; i++) {
if (searchwithin[i].type === target) {
return(searchwithin[i].id);
}
}
}
var id = findIdByType("button");
if (id) {
$("#" + id).click(function() {
// do whatever you want to do on the click function here
}
});
条目。上述代码建议仅返回并在第一个条目上运行。如果要为这两个ID设置单击处理程序,则必须修改代码或表。如果这是用于的所有表,则可以将其更改为选择器(可以包含多个id),如下所示:
type:checkbox