2013-09-24 178 views
1

因此,我正在为博客创建/编辑/删除页面 - 它显示了一个文章列表,其中包含编辑和删除按钮。被点击的文章“富”的编辑按钮时,这些事情发生:将附加HTML的属性设置为jQuery中的变量?

  • 在div扩展和编辑表单的原始HTML与jQuery的追加内追加()。

  • DOM有一个对象数组,每个对象包含一篇文章的信息。具有id'foo'的特定对象被提取并被转换为数组'bar'。

现在,我想要做的就是将附加表单的值设置为'bar'内的值。我试过使用.attr(),.val(),但似乎没有任何工作。

我认为这个问题可能是我在同一个范围内完成的。在我的.append()调用之后,我尝试访问我刚刚通过ID附加的元素。这是让我绊倒了吗?

函数中,这是我想做到这一点:

$(this).parent().children('#thisone').append("<input id="articletitle">"); 
$(this).parent().children('#thisone').children('#articletitle').val("my title"); 
+1

你可以在上面看到您的字符串是不正确引用高亮? – Brian

+1

除了引用语法错误之外,'$(this).parent()。children('#thisone')'让我假设您有重复的元素标识符,这是无效的并且可能导致问题。 –

+0

我想布莱恩是对的。同时请记住,如果您在使用Chrome/Chrome浏览器的JavaScript/JQuery时遇到问题。 (右键单击 - >检查元素 - >控制台) –

回答

2

尝试构建完整的元素,你追加前:

var $input = $("<input>", { 
    id: "articleTitle", 
    value: "my title" 
}); 

$("#thisone").append($input); 
+1

和ID应该始终是唯一的。因此你不需要'.parent()。children()',而只需要'$('#thisone')。append()' –

0

假设你的HTML代码会有点像这个

<div id="thisone"> 
    <span id="articletitle">Some Crazy Blog Title</span> 
    <a id="edittile" href="#">Edit Title</a> 
</div> 

Javascript代码的问题:

$('#edittile').on('click', function() { 
    var value = $('#articletitle').text(); 
    var html = '<form><input type="text" value="'+ value +'">'; 
    html += '<input type="submit" value="save"></form>'; 
    $('#articletitle').html(html); 
    $(this).hide(); 
}); 

我创建了一个JS代码fiddele您的裁判太看看这里:http://jsfiddle.net/4hA6y/

相关问题