Javascript jQuery使用动态创建的ID

Javascript jQuery使用动态创建的ID,javascript,jquery,Javascript,Jquery,我试图在javascript函数中使用动态创建的ID,但它不起作用。我认为将#预先添加到字符串id应该可以工作,但事实并非如此 代码: 因此,用法是: $('#testid') 但它不起作用。如何正确地使用动态创建的ID?我在使用Jquery时面临同样的问题。请尝试$(document).getElementbyId('myid')。希望能有所帮助 编辑 更改: $(“#”+idCheckBoxToCompare)by$(document)。getElementbyId(idCheckBoxT

我试图在javascript函数中使用动态创建的ID,但它不起作用。我认为将
#
预先添加到字符串id应该可以工作,但事实并非如此

代码:

因此,用法是:

$('#testid')

但它不起作用。如何正确地使用动态创建的ID?

我在使用Jquery时面临同样的问题。请尝试
$(document).getElementbyId('myid')
。希望能有所帮助

编辑 更改: $(“#”+idCheckBoxToCompare)by$(document)。getElementbyId(idCheckBoxToCompare)

使用这个

 var IterateCheckedDatesAndUncheckWithSameValue = function (elementNumber) {

    idCheckBoxToCompare = "CMP_KD1_tcDE_tctpDNDR_chkDNDRDay" + elementNumber.toString();
    if ($("#" + idCheckBoxToCompare).prop('checked') === false) {
        return;
    }

    textBoxID = "CMP_KD1_tcDE_tctpDNDR_txtDNDRDay" + elementNumber.toString();
    textBoxValue = $("#" + textBoxID).val();

    for (i = 1; i < 8; i++) {

        if (i !== elementNumber) {
            idCheckBox = "CMP_KD1_tcDE_tctpDNDR_chkDNDRDay" + i.toString();
            idInputBox = "CMP_KD1_tcDE_tctpDNDR_txtDNDRDay" + i.toString();
            inputBoxValue = $("#" + idInputBox).val();

            if ($("#" + idCheckBox).prop('checked') === true) {
                if (inputBoxValue === textBoxValue) {

                    $("#" + idCheckBox).prop('checked', false);
                }
            }
        }
    }
}
var IterateCheckedDatesAndUncheckWithSameValue=函数(elementNumber){
idCheckBoxToCompare=“CMP_KD1_tcDE_tctpDNDR_chkDNDRDay”+elementNumber.toString();
if($(“#”+idCheckBoxToCompare).prop('checked')==false){
返回;
}
textBoxID=“CMP_KD1_tcDE_tctpDNDR_txtdnddrday”+elementNumber.toString();
textBoxValue=$(“#”+textBoxID).val();
对于(i=1;i<8;i++){
如果(i!==元素编号){
idCheckBox=“CMP_KD1_tcDE_tctpDNDR_chkDNDRDay”+i.toString();
idInputBox=“CMP_KD1_tcDE_tctpDNDR_txtdnddrday”+i.toString();
inputBoxValue=$(“#”+idInputBox).val();
if($(“#”+idCheckBox).prop('checked')==true){
如果(inputBoxValue===textBoxValue){
$(“#”+idCheckBox).prop('checked',false);
}
}
}
}
}

您的代码看起来很复杂,有太多的
。Javascript也可以通过使用
+
来计算字符串和数字。无需先将其转换为字符串。因此,我对其进行了更新,使其更具可读性

试试这个

var IterateCheckedDatesAndUncheckWithSameValue = function(elementNumber) {

    idCheckBoxToCompare = "CMP_KD1_tcDE_tctpDNDR_chkDNDRDay" + elementNumber;
    if ($('#' + idCheckBoxToCompare).prop('checked') === false) {
        return;
    }

    textBoxID = "CMP_KD1_tcDE_tctpDNDR_txtDNDRDay" + elementNumber;
    textBoxValue = $('#' + textBoxID).val();

    for (i = 1; i < 8; i++) {

        if (i !== elementNumber) {
            idCheckBox = "CMP_KD1_tcDE_tctpDNDR_chkDNDRDay" + i;
            idInputBox = "CMP_KD1_tcDE_tctpDNDR_txtDNDRDay" + i;
            inputBoxValue = $('#' + idInputBox).val();

            if ($('#' + idCheckBox).prop('checked') === true) {
                if (inputBoxValue === textBoxValue) {
                    $('#' + idCheckBox).prop('checked', false);
                }
            }
            console.log('#' + idCheckBox); //print here just to see the id results
        }
    }
}
var IterateCheckedDatesAndUncheckWithSameValue=函数(elementNumber){
idCheckBoxToCompare=“CMP_KD1_tcDE_tctpDNDR_chkDNDRDay”+元素编号;
if($('#'+idCheckBoxToCompare).prop('checked')==false){
返回;
}
textBoxID=“CMP_KD1_tcDE_tctpDNDR_txtdnddrday”+元素编号;
textBoxValue=$('#'+textBoxID).val();
对于(i=1;i<8;i++){
如果(i!==元素编号){
idCheckBox=“CMP_KD1_tcDE_tctpDNDR_chkDNDRDay”+i;
idInputBox=“CMP_KD1_tcDE_tctpDNDR_txtdnddrday”+i;
inputBoxValue=$('#'+idInputBox).val();
if($('#'+idCheckBox).prop('checked')==true){
如果(inputBoxValue===textBoxValue){
$('#'+idCheckBox).prop('checked',false);
}
}
console.log(“#”+idCheckBox);//在此处打印以查看id结果
}
}
}
html中的
ID
每页只能有一个元素。因此,请确保从该方法生成的
ID
与其他元素不匹配

Jquery选择器可以读取字符串变量

因此,您只需执行
var id=“#test”
。然后像这样放置
$(id)


var id=“test”
然后
$(“#”+test)
$(“#”+idCheckBox)
试试你正在创建的这个,
$(“#testid”)
因此它找不到元素。使用
$(“#”+idCheckBoxToCompare)
而不是
$(“'.\35;“+idCheckBoxToCompare+”)
使用类而不是id来访问动态创建的元素,确保它可以工作为什么向下投票?因为@Satpal已经注释过了,所以您需要删除这些单引号。此外,看起来您不仅需要动态生成的id,还需要唯一的id。每当我需要动态生成的唯一id时,我都会这样做
var id=“id“+Date.now()
然后可以执行
$(“#”+id)
文档。getElementById(id)
。希望这能有所帮助。你把VanillaJS和jQuery搞混了,而没有回答这个问题。这不是动态的。@Roberrrt这是纯javascript,我对VanillaJS一无所知,但在我的例子中,jQuery无法找到和管理文档完全加载后创建的id为的元素。因此,这行代码回答了“我试图在javascript函数中使用动态创建的ID,但它不起作用”的问题。我测试代码并为自己工作。让我解释一下:Vanilla JS是一个用来描述本机的、不受库代码影响的术语。(见附件)。您正在使用
$(document)
方法,这意味着:您正在将文档包装到jQuery对象中,然后是将在常规文档上调用的函数。这与“vanilla”JS的库相冲突
 var IterateCheckedDatesAndUncheckWithSameValue = function (elementNumber) {

    idCheckBoxToCompare = "CMP_KD1_tcDE_tctpDNDR_chkDNDRDay" + elementNumber.toString();
    if ($("#" + idCheckBoxToCompare).prop('checked') === false) {
        return;
    }

    textBoxID = "CMP_KD1_tcDE_tctpDNDR_txtDNDRDay" + elementNumber.toString();
    textBoxValue = $("#" + textBoxID).val();

    for (i = 1; i < 8; i++) {

        if (i !== elementNumber) {
            idCheckBox = "CMP_KD1_tcDE_tctpDNDR_chkDNDRDay" + i.toString();
            idInputBox = "CMP_KD1_tcDE_tctpDNDR_txtDNDRDay" + i.toString();
            inputBoxValue = $("#" + idInputBox).val();

            if ($("#" + idCheckBox).prop('checked') === true) {
                if (inputBoxValue === textBoxValue) {

                    $("#" + idCheckBox).prop('checked', false);
                }
            }
        }
    }
}
var IterateCheckedDatesAndUncheckWithSameValue = function(elementNumber) {

    idCheckBoxToCompare = "CMP_KD1_tcDE_tctpDNDR_chkDNDRDay" + elementNumber;
    if ($('#' + idCheckBoxToCompare).prop('checked') === false) {
        return;
    }

    textBoxID = "CMP_KD1_tcDE_tctpDNDR_txtDNDRDay" + elementNumber;
    textBoxValue = $('#' + textBoxID).val();

    for (i = 1; i < 8; i++) {

        if (i !== elementNumber) {
            idCheckBox = "CMP_KD1_tcDE_tctpDNDR_chkDNDRDay" + i;
            idInputBox = "CMP_KD1_tcDE_tctpDNDR_txtDNDRDay" + i;
            inputBoxValue = $('#' + idInputBox).val();

            if ($('#' + idCheckBox).prop('checked') === true) {
                if (inputBoxValue === textBoxValue) {
                    $('#' + idCheckBox).prop('checked', false);
                }
            }
            console.log('#' + idCheckBox); //print here just to see the id results
        }
    }
}