变量JavaScript函数

问题描述:

这里是我的代码:变量JavaScript函数

$('#date').pickadate({ 
    format: 'mmmm d, yyyy', 
    disable: [ 
     1, 2, 3, 4, 5 
    ] 
}); 

“禁用”是指将禁用1周,2,3,4日和5这是行不通的代码:

<input type="text" id="numbers" value="1, 2, 3, 4, 5"> 

<script> 
var numbers = document.getElementById('numbers').value; 

$('#date').pickadate({ 
    format: 'mmmm d, yyyy', 
    disable: [ 
     numbers 
    ] 
}); 
</script> 

我想使用变量中的数字,因为它可以是动态的。为什么它不适用于变量numbers?我怎样才能做到这一点?谢谢。

+0

有没有错误?你能在jsfiddle.net网站上创建一个jsfiddle吗?这会让我们更容易帮助你。 –

它可能预计的数字,而不是用逗号的字符串:

[ "1, 2, 3, 4" ] !== [1, 2, 3, 4] 

试试这个:

var numbers = document.getElementById('numbers').value.split(',').map(function(val) { 
    return parseInt(val.trim(), 10); 
}); 

$('#date').pickadate({ 
    format: 'mmmm d, yyyy', 
    disable: numbers 
}); 
+0

反而把它作为Number而不是parseInt。只是一种感觉。你怎么看? –

+0

@AkshayKhandelwal我认为结果是一样的,不是吗? ¯\ _(ツ)_ /¯ –

+0

是的。你也考虑过基数作为小数。有趣。现在我觉得你的代码是完美的。这是有道理的。您不能使用float作为日期。谢啦。增加知识。 –

因为当你从它们的值中得到它们时,你需要一个数组。

$('#getinfo').on('click',function(){ 
 

 
var numbers = document.getElementById('numbers').value; 
 
    numbers = numbers.split(' ').join(); // remove spaces 
 
    numbers = numbers.split(','); // convert to array 
 
    alert(numbers); 
 
    console.log(numbers); 
 
    
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" id="numbers" /> 
 
<button id="getinfo">Get Info</button>

现在你可以在那里使用变量。

+0

嗯..错过了那部分:) 好,你指出了它。 –

+0

一定要看看aletzo的答案:您需要直接将'numbers'变量传递给'disable',而不是在另一个数组内。 – Hissvard

var numbers = document.getElementById('numbers').value; 

现在数字包含一个字符串,所以你必须将它转换为一个数组。也许是这样的:

numbers = numbers.split(', '); 

你可以这样做:

disable: numbers 

而不是这个(!):

disable: [ 
    numbers 
] 
+0

这不工作? – baileyJchoi

+0

对不起,我不确定你的问题 – aletzo

+0

我试过这个,但它不起作用 – baileyJchoi

在您的代码:

var numbers = document.getElementById('numbers').value; 

号不是一个数组,它是一个值为“1,2,3,4,5”的字符串。为了使一个数组,你需要使用分割功能:

var numbersArray = numbers.split(','); 

然后你可以使用numbersArray与禁用,像这样:

$('#date').pickadate({ 
    format: 'mmmm d, yyyy', 
    disable: numbersArray 
}); 

您正在创建一个数组,其中一个项的值为“1,2,3,4,5”

而您需要的是包含5个元素的数组,其中每个项都是一个数字。

例子:

var numbers = document.getElementById('numbers').value.split(',') 
$('#date').pickadate({ 
    format: 'mmmm d, yyyy', 
    disable: numbers 
}); 

但这个代码将会给你一个数组,其中每个项目是一个字符串,所以你需要分析每一个与parseInt函数()