2016-07-15 47 views
0

我的目标是从启用的输入ID创建变量并从它们创建选择器变量。返回启用输入ID并在jQuery中创建他们的变量

这是例如HTML的:

<input type="number" class="numberInput" id="input1"/> 
<input type="number" class="numberInput" id="input2" disabled/> <!-- Do not return this id --> 
<input type="number" class="numberInput" id="input3"/> 
<input type="number" class="numberInput" id="input4"/> 
<input type="number" class="numberInput" id="input5" disabled/> <!-- Do not return this id --> 

因此函数应该只返回#input1#input3#input4。 我做了以下内容:

$(".numberInput:enabled").each(function(){ 
     var enabledInputId = this.id;  
    }); 

其中的伎俩,但我想打从返回ID变量。

喜欢的东西:

var value1 = $("#" + returnedId); //index 0 -- should return #input1 
var value2 = $("#" + returnedId); //index 1 -- should return #input3 
var value3 = $("#" + returnedId); //index 2 -- should return #input4 

注:禁用和启用输入将在不同的事件而改变,所以我想只能让它们在这一刻启用变量。

+0

你可以澄清你是什么意思“但我想打从返回的ID变量”! –

+0

当然,问题中提到的每个函数都会返回启用的输入的ID,并且我想从它们中创建变量。所以新的变量将成为他们的直接选择。返回id - input1并创建选择器$(“#input1”); –

+0

你是否真的需要为它们创建单独的变量?你不能把它们保存在一个数组中吗?你已经拥有了你想要的价值,所以它不会很难。 –

回答

1

您可以使用此:

var enabledIds = []; 
var i = 0; 
$(".numberInput:enabled").each(function(){ 
     enabledIds[i] = '#'+this.id;  
     console.log(enabledIds[i]); 
     var value = $(enabledIds[i]).val(); 
     console.log(value); 
     i++; 
    }); 

这里是一个working demo

+0

让我知道如果适合你! –

+0

这只是这些.val()的一个例子。但我仍然没有得到如何选择每个函数返回的第一个输入ID。像这样:this.id [0]? –

+0

@ t4d_看看我在这里做了什么。我有一个'enabledIds'数组,在其中我保存了所有'selectors'意思是启用输入的id,这就是为什么我没有使用return语句,然后我可以选择第一个输入为'$(enabledIds [0])'第二个启用的输入作为'$(enabledIds [1])'等... –