html文件:
<div id ="main">
</div>
使用Javascript:
//create a div
var divElem = $('<div class="divText"></div>');
//create input element inside it
var inhtml = "<input type='text' id='12345' />";
//add to page
$(divElem).html(inhtml).appendTo('#main')
以下无效,因为无法找到输入元素:
//retrieve input element
$('#12345').val('hello')
以下作品:
document.getElementById('12345').value = 'hello'
以下作品:
var ipElem = $(inhtml);
$(divElem).append(ipElem).appendTo('#main')
$(ipElem).val('hello')
有人能说出为什么第一版检索元素在jquery中不起作用? (刚从jquery开始...... :))
编辑: 我认为&#39; 12345&#39;有效,但不是一些奇怪的ID:mytext0.15942923246580176 看这里: http://jsfiddle.net/9PVNb/4/
答案 0 :(得分:5)
你将divElem
包装在jQuery对象中两次:
var divElem = $('<div class="divText"></div>');
var inhtml = "<input type='text' id='12345' />";
$(divElem).html(inhtml).appendTo('#main') // Nop '$(divElem)' plus missing `;`
divElem.append(inhtml).appendTo('#main'); // Yup
编辑:
编辑:我认为'12345'有效但不是一些奇怪的ID:mytext0.15942923246580176
http://jsfiddle.net/9PVNb/4/上的代码无效,因为:
// Your `id` has a `.` which you didn't escape
var elemid = 'mytext0.15942923246580176';
你可以这样做:
alert($('#' + elemid).val()); //undefined. DOES NOT WORK
alert($('#' + elemid.replace('.', '\\.')).val()); // hello world IT WORKS!
答案 1 :(得分:1)