从 js 函数中的数组 id 中检索值

Retrive value from array id in js function

本文关键字:id 检索 数组 js 函数      更新时间:2023-09-26

嗨,我正在编写一个基于 php 的代码,其中我正在生成具有不同 id 和名称的复选框

<input type="checkbox" name="settle_check[]" id="settle_check['.$res2['id'].']" value="1" onclick="calculate_discount('''.$res2['id'].''');"/>

我的计算折扣功能如下

 function calculate_discount(id){
    alert($('#settle_check['+id+']').val());
    if($('#settle_check['+id+']').is(":checked")){
        alert('Hiii');
    }
    else{
        alert('Byeee');
    }
}

现在,每次它都没有捕获值并发出未定义的警报。请帮助我。

您在ID选择器中使用[],它们是元字符。你需要逃离它们。

$('#settle_check''['+id+''']').val()

文档

使用任何元字符(例如!#$%&'()*+,./:;<=>?@[]^'{|}~ ) 作为名称的文字部分,必须使用两个反斜杠进行转义:''''。

您可以使用属性等于选择器 [名称="值"]

$('[id="settle_check[' + id +']"]').val()

使用这个

$('#settle_check''['+id+''']').val()

你也可以试试这个:

传递元素本身,而不是传递 id,如下所示:

<input type="checkbox" name="settle_check[]" value="1" click="calculate_discount(this);"/>

并将函数更新为:

function calculate_discount(element){
    alert($(element).val());
    if($(element).is(":checked")){
        alert('Hiii');
    }
    else{
        alert('Byeee');
    }
}

使用此解决方案,您可以避免不必要的jQuery搜索。