所以我需要得到span的id,其中是checkbox的输入。。所以,如果选中复选框,我需要获取span的特定id,复选框在哪里。
我的代码
html:
<div id="APs">
<span id="59" name="4"><input type="checkbox"> <b>[Site: 4 | ID: 59]</b> - something<br></span>
<span id="60" name="4"><input type="checkbox"> <b>[Site: 4 | ID: 60]</b> - something<br></span>
<span id="275" name="4"><input type="checkbox"> <b>[Site: 4 | ID: 275]</b> - something<br></span>
<span id="2903" name="4"><input type="checkbox"> <b>[Site: 4 | ID: 2903]</b> - something<br></span>
<span id="3417" name="4"><input type="checkbox"> <b>[Site: 4 | ID: 3417]</b> - something<br></span>
</div>
jquery:
$(document).on("change", ":checkbox", function () {
if ($(this).is(":checked"))
{
const apid = $("#APs span").attr("id");
console.log(apid);
//another lines of code
}
}
这段代码只选择第一个跨度,即使我点击第二个复选框,它仍然会记录id 59。
我需要获取那个id,因为我从json获取数据,url上有什么,但我需要那个id来获取正确的数据。
1条答案
按热度按时间ie3xauqp1#
问题在于您选择了“全部”
#APs span
元素,而不是与所选复选框相关的元素。当您调用jquery的attr()
方法,它将仅从第一个元素读取属性。要更改此行为,请使用
this
关键字以及closest()
获取父对象的选择器span
引发change
事件