我已閱讀了關於此主題的每篇文章,並嘗試了許多「解決方案」,但它似乎並沒有爲我工作。追加後的訪問元素
$(function() {
var options = {
source: [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
],
minLength: 2
};
$('#btn_addline').on ("click", function() {
// get existing line number and increment by one
var linenum = parseInt ($('#numlines').val()) + 1;
// update hidden numlines field with new value
$('#numlines').val(linenum);
// define new field names
var line_field = 'report['+linenum+'][line]';
var notes_field = 'report['+linenum+'][notes]';
var contact_field = 'report['+linenum+'][contact]';
var newLine = $('<tr> \
<td><input name="'+line_field+'" id="'+line_field+'" type="text" size="2" maxlength="2" class="form" value="'+linenum+'" readonly="readonly" /></td> \
<td><input name="'+notes_field+'" id="'+notes_field+'" type="text" size="96" maxlength="256" class="form" /></td> \
<td><input name="'+contact_field+'" id="'+contact_field+'" onFocus="attach_autocomplete()" type="text" size="32" maxlength="32" class="form" value="test123" /></td> \
</tr>');
// append new line to table
//$('#report_items').append(newLine);
$('#report_items').append(newLine)
.hide()
.fadeIn('Normal', function() {
$(this).find('#'+contact_field).val('test');
//alert ($(this).find('#'+contact_field).val());
alert (contact_field);
alert ($('#'+contact_field).val());
});
//$('#'+contact_field).autocomplete(options);
});
});
新的HTML被正確添加,但是我沒有做任何事情可以訪問這些元素。我在整個網站嘗試了各種建議,現在我很沮喪,希望得到一些幫助。
第三次提醒 - alert ($('#'+contact_field).val());
- 返回「未定義」。
要清楚,我已經徹底地瀏覽了類似問題的列表,但還沒有找到解決方案。這很可能是我錯過了一些明顯的東西,或者我不太理解追加元素和它對DOM的影響之間的關係,但是無論如何,我真的可以在這裏使用一隻手。
乾杯。
向我們展示你的HTML,或使用http://jsfiddle.net/ – 2013-05-14 07:35:05
將添加HTML。現在建立jsfiddle。 – 2013-05-14 07:37:12
我建議你從你的id中取代'''''並使用下劃線'_',就像''report_'+ linenum +'__line_'' – Catalin 2013-05-14 07:42:24