我需要使用链接中的“name”属性动态更改变量 - 下面的代码...
<input type="text" class="datepicker" id="dp1">
<a href="javascript:;" class="tab" name="1,2">test button</a>
和
$(document).ready(function(){
var pickable = { dp1: [4,5,6] };
$(".tab").click(function () {
var test = $(this).attr("name").split(",");
pickable = { dp1: test };
});
$(".datepicker").each(function() {
$(this).datepicker({
beforeShowDay: function(date){
var day = date.getDay(), days = pickable[this.id];
return [$.inArray(day, days) > -1, ""];
},
});
});
});
为什么这不起作用的任何想法?
答案 0 :(得分:1)
如果您的意思是传递给click
的函数没有被执行,请检查该代码是否在html之前被解释。
尝试将代码包装在ready
函数中:
$(function () {
var pickable = { dp1: [4, 5, 6] };
$(".tab").click(function () {
var test = [ $(this).attr("name") ];
pickable = { dp1: test };
});
});
如果问题是您希望字符串值name
,"1, 2"
成为数组,则需要稍微更改一下代码:
var pickable = { dp1: [4, 5, 6] };
$(".tab").click(function () {
var test = $(this).attr("name").split(",");
pickable = { dp1: test };
});
现在,值"1, 2"
被,
令牌拆分并分成一系列值:["1", "2"]
答案 1 :(得分:1)
您可以尝试这样的事情
$(document).ready(function(){
var pickable = ["2","3","4","5"];
function closedDays(date){
var sDate = date.getDay().toString();
if ($.inArray(sDate, pickable) == -1) return [false,"",""];
else return [true, ""];
}
$(".tab").click(function () {
pickable = $(this).attr("name").split(",");
closedDays;
});
$(".datepicker").each(function() {
$(this).datepicker({
beforeShowDay: closedDays
});
});
});
尝试
答案 2 :(得分:0)
如果您打算在代码中的任何位置使用var pickable,则可能需要使用jquery data。你可以尝试这样的事情:
$(document).data('pickable', { dp1: [4, 5, 6] } );
$(".tab").click(function () {
var test = $(this).attr("name").split(',');
$(document).data('pickable', { dp1: test });
});