假设我想将jQuery的任何属性数增加1,那么就说。
例如
<label for='question_1' class='question_content_label'>
<input type='text' id='question_1' class='question_content'>
我想将其ID增加1,因此它变为
<label for='question_2'>
<input type='text' id='question_2'>
我以为我会在jQuery中这样做:
$('body').find('.question_content').attr('for',function (index,name){
return name.replace(/(\d+)/, function(fullMatch,n){
return Number(n) + 1;
console.log(n);
});
});
$('body').find('.question_content_label').attr('for',function (index,name){
return name.replace(/(\d+)/, function(fullMatch,n){
return Number(n) + 1;
console.log(n);
});
});
我不想重复这个:
function (index,name){
return name.replace(/(\d+)/, function(fullMatch,n){
return Number(n) + 1;
console.log(n);
});
};
我想创建这样的功能
function increment_attr_number(index,name){
return name.replace(/(\d+)/, function(fullMatch,n){
return Number(n) + 1;
console.log(n);
});
};
像这样传递:
$('body').find('.question_content_label').attr('for','increment_attr_number');
但它不起作用
感谢:)
答案 0 :(得分:4)
您需要传递函数引用,而不是它的字符串表示
$('body').find('.question_content_label')
.attr('for', increment_attr_number);