我正在使用Jquery获取CSS类的值。当我单击标题时,我希望所有的单选框都标记为选中。我循环并找到这些值,使用console.log检查我是否返回了正确的值。然而,当我尝试使用该函数时,它只会在数组中的第一个元素上正确运行,我希望它应用于循环中找到的所有名称。
var skil = $('.Routes');
var skills = new Array();
skil.each(function(i) {
skills.push($(this).text());
var Route = '#'+skills[i].replaceAll(' ','');
console.log(Route);
$(Route).on('click', function() {
$(Route).prop("checked", true); //This only performs the function on the First value (in this case for "Purchased")
});
});
下面是在两个头上正确运行的代码摘录。我可以复制它,但有17个类,所以理想情况下,我希望动态地传递值,并在可能的情况下运行一个函数。
$('#Purchased').on('click', function() {
$('.Purchased').prop("checked", true);
});
$('#BST').on('click', function() {
$('BST').prop("checked", true);
});
参见下面的HTML构建表
<th class="rotate"><div><span class ="Routes" id ="Purchased"> Purchased</span></div></th>
<th class="rotate"><div><span class ="Routes" id ="BST> BST</span></div></th>
<td bgcolor="#8DB255" class=""> <input type="radio" class="get_value Purchased" name="48215:4G1" id="r8215:4201" value="4:716:597:18.25:200:0:200:NA:PBJB_18223_JTC:375:8215:4:20:2023/09/13:284:284:284:284:284:0::0" checked=""></td>
<td bgcolor="#8DB255" class=""> <input type="radio" class="get_value BST" name="48215:4G1" id="r8215:4201" value="4:716:597:18.25:200:0:200:NA:PBJB_18223_JTC:375:8215:4:20:2023/09/13:284:284:284:284:284:0::0" checked=""></td>
2条答案
按热度按时间djmepvbi1#
我建议你使用Jquery在标题上添加一个click处理程序,然后使用标题文本来分配每个表行单选按钮的属性。请看fiddle:https://jsfiddle.net/martlark/hsfrvj90/6/
rt4zxlrg2#
问题在于名称不匹配。
span
元素的ID是Angle_Plant
你的html说
因此,这个
var Route = '#'+skills[i].replaceAll(' ','');
的结果将给予AnglePlant
现在,您可以看到
AnglePlant
(您在下一行$(Route).on('click', function() {
中用作选择器)与HTML元素的IDAngle_Plant
不匹配这就是它不起作用的根本原因。
最好的办法是将html元素的ID重命名为
AnglePlant
: