jquery - 使用 jQuery 选择器查找以某种方式结束的所有 id

标签 jquery

我使用clone()函数添加一行,然后必须重命名新克隆的行中的所有div。我试图这样做:

// Add button for new TOEFL entry
        $("#add-TOEFL").button().click(function( event ){
                event.preventDefault();

                var tag = 'TOEFL',
                    testDate = $("#TOEFLtestDate-0").val(),
                    reading = $("#readingTOEFLScore-0").val(),
                    listening = $("#listeningTOEFLScore-0").val(),
                    speaking = $("#speakingTOEFLScore-0").val(),
                    writing = $("#writingTOEFLScore-0").val(),
                    applicantId = $("#applicantId").val(),
                    dataString = 'applicantId=' + applicantId + '&dateTaken=' + testDate + '&listeningScore=' + listening + '&readingScore=' + reading + '&speakingScore=' + speaking + '&writingScore=' + writing;

                // Insert New Record
                $.ajax({
                    type: "POST",
                    url: "ajax/insertEntry.cfm?xAction=TOEFL",
                    data: dataString,
                    success: function(newIdx){

                        // Make sure returned value is a number
                        newId = jQuery.trim(newIdx) * 1;

                        // clone new row
                        newDivId = tag + '-Entry-' + newId;
                        newRow = $('#' + tag + '-Entry-0').clone().attr('id', newDivId);
                        console.log('New row cloned. DivId: ' + newDivId);

                        // get all ids
                        $("#" + newDivId).find("[@id$='-0']").each(function(){
                            selectedDivId = $(this).attr("id");
                            alert(selectedDivId);   
                        })  

                    }
                })

Here is the HTML markup:

<div id="TOEFL-Entry-0" style="display: none" >          
        <p style="margin:5px 0 0 0">
            Taken  <input name="TOEFLtestDate-0" type="text" id="TOEFLtestDate-0" class="inputDateField" style="margin-left:5px; margin-right:15px;"/>
            Reading <input name="readingTOEFLScore-0" type="text" id="readingTOEFLScore-0" class="inputTinyScoreField" style="margin:0 8px 0 5px"/>
            Listening <input name="listeningTOEFLScore-0" type="text" id="listeningTOEFLScore-0" class="inputTinyScoreField" style="margin:0 8px 0 5px"/>
            Speaking <input name="speakingTOEFLScore-0" type="text" id="speakingTOEFLScore-0" class="inputTinyScoreField" style="margin:0 8px 0 5px"/>
            Writing <input name="writingTOEFLScore-0" type="text" id="writingTOEFLScore-0" class="inputTinyScoreField" style="margin:0 8px 0 5px"/>
            <button id="add-TOEFL-0">Add</button>
        </p>
    </form>
</div>

即使认为应该有一堆符合此条件的 id,我也没有看到警报。

我做错了什么?

乔什

最佳答案

更新新问题代码。

有两个问题:

  1. 最近更新的 OP 代码具有 [@id$='-0'] - 原始问题没有。对于当前版本的 jQuery,这应该是 [id$='-0']

  2. 节点被克隆但从未添加到 DOM 中。使用类似的东西:

    var Entry0  = $('#' + tag + '-Entry-0');
    var newRow  = Entry0.clone().attr('id', newDivId);
    //console.log ('New row cloned. DivId: ' + newDivId);
    
    Entry0.parent ().append (newRow);
    

    在尝试获取 ID 之前。

<小时/>

您发布的代码没有任何问题。问题出在您尚未向我们展示的某些内容上。

发布您的 HTML 和完整的 JavaScript。理想情况下,发布一个最小但完整的重复问题的示例。

关于jquery - 使用 jQuery 选择器查找以某种方式结束的所有 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3517573/

相关文章:

jquery - 在私有(private)商业应用程序中使用 jQuery

javascript - 检测列表框是否为空(没有选项)

php - 在 Woocommerce 单个产品上同步多个 ajax 添加到购物车按钮

jquery - 无法显示隐藏的跨度

jquery - 将输入值保存在子行中 - 数据表

javascript - 获取元素值然后减1?

JQuery:循环输入元素

javascript - 获取 HTML 字符串中的所有图像

jquery - 如何检索 JQuery 数据表的排序状态

jquery - 为什么我的 $.ajax 请求总是失败?