好的,我正在动态地创建隐藏的输入字段,如下所示:
$("<input type='hidden' id=pid'"+postid+"-title name='posts["+postid+"][title]' value='' />" +
"<input type='hidden' id=pid'"+postid+"-body name='posts["+postid+"][body]' value='' />" +
"<input type='hidden' id=pid'"+postid+"' class='category' name='posts["+postid+"][category]' value='' />" +
"<input type='hidden' id=pid'"+postid+"' class='author' name='posts["+postid+"][author]' value='' />"
).appendTo("#datatable");为了便于调试,我将title输入的id更改为包含它的class (即title)。因此,似乎我应该能够使用代码$('#pid'+id+'-title')访问它。然而,情况并非如此。相反,使用$("#pid"+id+"-title")toSource()的结果是({context:({}), selector:"#pid0-title"})。顺便说一下,0是正确的ID。
我觉得我一定是遗漏了一些关于JQuery和动态元素的显而易见的东西。我显然找不到对象的原因是什么?
发布于 2012-06-09 08:36:45
你可以通过这样的方式尝试,更加清晰有序:
var createInputs = function(postid) {
var
input = $('<input type="hidden" value="" />'),
createInput = function(id, type) {
return input.clone()
.addClass(type)
.attr('id', 'pid' + id + '-' + type)
.attr('name', 'posts[' + id + '][' + type + ']');
};
$()
.add(createInput(postid, 'title'))
.add(createInput(postid, 'body'))
.add(createInput(postid, 'category'))
.add(createInput(postid, 'autor'))
.appendTo('#datatable');
};
createInputs(1);
console.log($('#datatable').html());example
https://stackoverflow.com/questions/10957332
复制相似问题