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

标签 javascript php laravel laravel-blade

当复选框被选中时,我试图做一个简单的显示,但我无法获取元素,因为元素的 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/

相关文章:

javascript - 如何检索拆分的值并将它们放入单独的变量中

php - 避免处理替换字符串中的特殊 preg 字符

javascript - 如何使用 JQuery/JavaScript/PHP 将文本写入外部文件?

php - Laravel - 在使用存储上传图像时创建自定义名称

php - Laravel 4.2 在 BelongsToMany 结果上返回软删除

javascript - 使用 neo4j-javascript-driver 关闭 session 的正确方法是什么?

javascript - 替换为uuid(或随机数)

javascript - 无法使用静态方法返回的类实例访问类方法

php - 一个 While 循环中有多个 While 循环?

php - Laravel 4 - 运行时出错 `composer install`