2017-02-28 190 views
0

如何根据ID选择使用不同参数运行相同的函数?选择的元素具有相同的值,但ID不同

在JQuery中,选择了输入按钮value="+",然后我想确定它们的id是什么,然后用不同的参数调用javascript函数。

例如,id="Add_1"按钮被选择,则调用的函数是getData(0);

下面是HTML(提取物)

<html> 
<head> 
<link href="../css/coin_convert.css" rel="stylesheet" type="text/css"> 
<script src="coin_convert.js"></script> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
</head> 
<body> 
<div class="form"> 
<form name="coins"> 
<input type="button" value="+" id="Add_1" /> 
<input type="button" value="+" id="Add_2"/> 
<input type="button" value="+" id="Add_3"/> 
<input type="button" value="+" id="Add_4"/> 
</form> 
</div> 


</body> 
</html> 

这里是JQuery的

$(document).ready(function() { 
    $("[value='+']").on("click", function() { 
     if($("[value='+']").is("Add_1")){ 
     getData(0); 
     } 
    }); 
}); 

这里是要调用的JavaScript函数

function getData(n){ 
    var coin = new Array(4); 
    switch (n){ 
     case 0: 
      coin[n]=document.getElementById('coin_dragon').value; 
      break; 
     case 1: 
      coin[n]=document.getElementById('coin_sky').value; 
      break; 
     case 2: 
      coin[n]=document.getElementById('coin_special').value; 
      break; 
     case 3: 
      coin[n]=document.getElementById('coin_legend').value; 
      break;   
    } 
    addition(coin[n]); 

} 

非常感谢!

回答

1

您需要使用.attr('id')找到ID属性的ID。

为了有这个运行每个已关联的ID,你将需要运行使用索引的回路元件,以及获取基于关闭该指数的数据:

$(document).ready(function() { 
    $("[value='+']").each(function(index) { 
    $(this).click(function() { 
     if ($(this).attr('id') == 'Add_' + (index + 1)) { 
     getData(index); 
     } 
    }); 
    }); 
}); 

在这例如,无论何时单击一个值为+且ID号以Add_开头的元素,getData()都会触发,并通过比元素ID小的数字。点击ID不以Add_开头的元素将不会触发getData()

我已经创建了一个工作小提琴,展示了这个here

希望这会有所帮助!

0

您使用.attr( 'ID')获得元素

if($("[value='+']").attr('id')== 'Add_1'){ 
    getData(0); 
} 
+0

它的工作,吨非常感谢 –

0

我可以建议你已经提供了基于代码中的一些新的想法:

的getData刚出现取决于被点击的按钮来调用“添加(值)”。我已经重构了代码,在每个按钮上包含一个数据属性,然后将其传递。

看到这个小提琴例如:https://jsfiddle.net/88z1e4yu/

$(document).ready(function() { 
    $("#form-coin > input").on("click", function() { 
     getData($(this).data('coin')); 
    }); 
}); 

function getData(coin){ 
    alert(coin); 
    addition(document.getElementById(coin).value); 
} 
+0

如果有一个不同的按钮用于不同的目的,该怎么办? –

+0

只需将更具体的选择器添加到查询/按钮即可。例如,为您希望的每个输入添加一个类“add-btn”,然后将点击函数更改为目标:$('#form-coin input.add-btn“)。on(”click“,... – Daniel

相关问题