gpt4 book ai didi

javascript - 如何获取动态给定 ID 的元素的 ID?

转载 作者:行者123 更新时间:2023-11-30 11:13:10 26 4
gpt4 key购买 nike

当复选框被选中时,我试图做一个简单的显示,但我无法获取元素,因为元素的 ID 是由 PHP 动态分配的。

该元素将在 foreach 循环内,因此将有多个具有动态给定 ID 的实例。

例子:

//Laravel blade template
<element id="attrb{{ $elem->id }}> "></element>

//Javascript
if ($("#attrb*ID").is(":checked")) {
$("#attrbs-container").show();
} else {
$("#attrbs-container").hide();
}

最佳答案

使用 Jquery

$('input[id^="attrb"]').change(function(e){

if($(this).is(':checked')) console.log($(this).prop('id'));

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<input type="checkbox" id="attrb1" value="1" />

运行,并选中复选框。您可以将 console.log 替换为您的 .show 或其他内容。

选择器 input[id^="attrb"] 表示 inputid^=attrb 开头。如果这些是您仅有的复选框,您也可以使用 input[type="checkbox"],但它不太具体。

改变与点击

change 当元素的数据(状态)改变时触发。 click 将在您单击时触发。在这种情况下,使用哪种可能无关紧要。 changeclick 的一个更好的例子是使用单选按钮,然后点击一个已经选中的单选按钮。复选框在选中时取消单击,单选按钮则没有那么多。我只是习惯于使用 change 而不是 click 进行状态更改。

$('input[id^="attrb"]').click(function(e){

if($(this).is(':checked')) console.log($(this).prop('id'));

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<input type="radio" id="attrb1" value="1" />

运行并单击 radio 2 次。它会触发 2 次。

$('input[id^="attrb"]').change(function(e){

if($(this).is(':checked')) console.log($(this).prop('id'));

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<input type="radio" id="attrb1" value="1" />

在这里做同样的事情,但有变化。这就是区别。

动态与动态

我的意思是 DYNAMIC 是在客户端运行时发生变化的东西,Dynamic 是静态 HTML,其中 ID 仅在服务器端发生变化。对于 DYNAMIC 你想像这样使用 on

 $(someparent).on('change', 'input[id^="attrb"]', function(e){ ... });

其中 someparent 是一个在运行时不会改变的静态元素。这将使用事件委托(delegate)和“冒泡”来查找在客户端更改的内容。

我不认为你指的是 DYNAMIC,但我把它包括在内以防万一。

干杯!

关于javascript - 如何获取动态给定 ID 的元素的 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52790333/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com