我使用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,我也没有看到警报。
我做错了什么?
乔什
最佳答案
更新新问题代码。
有两个问题:
最近更新的 OP 代码具有
[@id$='-0']
- 原始问题没有。对于当前版本的 jQuery,这应该是[id$='-0']
。节点被克隆但从未添加到 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/