我使用某个函数在特定类中附加复选框..每次选中复选框时都会运行一个函数..所以我需要获取复选框的名称和ID ..
下面是我动态附加复选框的代码部分..这里值是我想要id和name属性的那个..
答案 0 :(得分:1)
$.each(brandNameg, function(key, value) {
$(".fpblocks .fpblocksBrands_inner ul").append("<label class='checkbox'><input type='checkbox' onclick='selectMainBrand(\"" + value + "\");' />" + value + "</label>");
});
答案 1 :(得分:1)
使用
设置ID$.each(brandNameg, function(key, value) {
$(".fpblocks .fpblocksBrands_inner ul").append('<label class="checkbox"><input type="checkbox" id="' + value + '" onclick="selectMainBrand("' + value + '");" />' + value + '</label>');
});
答案 2 :(得分:0)
function selectMainBrand(ids) {
$('#Brands').on("change", "input", function () {
console.log("called");
var selected = this.name;
console.log(selected);
});
}
我假设你的UL标签有id =“brands”。如果不改变上面的代码如下
$('.fpblocks').on("change", "input", function () {
答案 3 :(得分:0)
$.each(brandNameg, function(key, value) {
$(".fpblocks .fpblocksBrands_inner ul").append("<label class='checkbox'><input type='checkbox' id ='someID' name ='someName' />" + value + "</label>");
});
并点击复选框点击..
$(".fpblocks .fpblocksBrands_inner ul :checkbox").live('click', function(){
var id = $(this).attr('id'); //get id of checked checkbox
var name = $(this).attr('name'); //get name of checked checkbox
})
答案 4 :(得分:0)
从输入代码
onclick='selectMainBrand(value);'
生成复选框后,您可以选择名称和
$('#Brands input')。on(“change”,function(){
var name = $(this).attr(“name”);
var id = $(this).attr(“id”);
警报(名);
警报(ID);
的console.log(选择的);
});
参见 DEMO http://jsfiddle.net/BbtEG/
答案 5 :(得分:0)
您动态创建的html(<input type='checkbox' onclick='selectMainBrand(value);' />
)没有name
或id
。你无法传递不存在的东西。要解决此问题,请生成要使用的name
和id
。
同样在你的selectMainBrand
函数中,你似乎没有使用你传入的ids
参数。所有函数正在做的是将处理程序绑定到输入,因为你“使用on
绑定它,看起来很傻。
为什么不使用on
代理处理程序呢?如果您委派处理程序,则可以从处理程序中抓取name
或id
,从而无需将这些作为参数传递( working demo )。
$.each(brandNameg, function (key, value) {
var label = $('<label />').addClass('checkbox'),
input = $('<input />').attr({
"type": "checkbox",
"name": "mainBrand" + key, //set the name, appending the key to make it unique
"id": "mainBrand" + key //set the id, appending the key to make it unique
});
$(".fpblocks .fpblocksBrands_inner ul").append(label.append(input).append(value));
});
//delegate the change handler
$('.fpblocks .fpblocksBrands_inner').on("change", '#Brands input', function (e) {
var selectedName = this.name,
selectedId = this.id,
isChecked = this.checked;
console.log(JSON.stringify({
"called": true,
"selectedName": selectedName,
"selectedId": selectedId,
"isChecked": isChecked
}));
});
如果您确实已经设置了传递参数,那么有一些方法可以做到这一点,例如在创建输入的循环中绑定处理程序( working demo ) :
$.each(brandNameg, function (key, value) {
var label = $('<label />').addClass('checkbox'),
input = $('<input />').attr({
"type": "checkbox",
"name": "mainBrand" + key, //set the name, appending the key to make it unique
"id": "mainBrand" + key //set the id, appending the key to make it unique
}).click(function (e) {
var self = $(this), // capture the input as a jQuery object (typically very useful)
actualHandler = function (id, name) {
// do stuff
console.log(JSON.stringify({
"called": "actualHandler",
"selectedName": id,
"selectedId": name,
"isChecked": self.prop('checked')
}));
};
actualHandler(this.id, this.name);
// or
actualHandler(self.attr('id'), self.attr('name'));
});
$(".fpblocks .fpblocksBrands_inner ul").append(label.append(input).append(value));
});
或者您可以在创建输入的循环中设置onchange
属性( working demo ):
window.inputHandler = function (id, name) { // must be added to the global scope, otherwise it won't be visible.
// do stuff
console.log(JSON.stringify({
"called": "inputHandler",
"selectedName": id,
"selectedId": name
}));
};
$.each(brandNameg, function (key, value) {
var label = $('<label />').addClass('checkbox'),
input = $('<input />').attr({
"type": "checkbox",
"name": "mainBrand" + key, //set the name, appending the key to make it unique
"id": "mainBrand" + key, //set the id, appending the key to make it unique
"onchange": "inputHandler('" + "mainBrand" + key + "', '" + "mainBrand" + key + "')"
});
$(".fpblocks .fpblocksBrands_inner ul").append(label.append(input).append(value));
});
还有其他方法可以解决这个问题。
就个人而言,我会使用代表团。