<span class="edt">ddddd</span>
<span class="edt">ssss</span>
<span class="edt">aaaaa</span>
<a id="edit">edit</a>
$('#edit').click(function(){
$('.edt').html("<input type=\"text\" id=\"\" value=\"\" /> ")
});
我想要做的是在jquery创建的输入中获取span标记的html部分。我知道更好的解决方案是在变量中通过id传递html,但是在页面加载时动态创建span标签。
答案 0 :(得分:1)
这将循环遍历每个edt
类,并使用与要替换的内容相同的值替换span的内容和input元素。
$('#edit').click(function(){
$('.edt').each(function() {
var value = $(this).text();
$(this).html('<input type="text" id="" value="'+value+'" />');
});
});
答案 1 :(得分:1)
如果动态创建#edit
元素,则应委派事件。
$(document).on('click', '#edit', function(){
$('span').html(function(index, oldHTML){
return '<input type="text" id="id'+ index +'" value="'+ oldHTML +'" />';
})
});
似乎你想编辑元素的内容,一些建议:
Focus
事件上的blur
将输入替换为其值。one
方法而不是on
。contenteditable
属性而不是替换元素。答案 2 :(得分:0)
这是你想要达到的目标吗?的 DEMO 强>
点击生成的一些输入元素以查看绑定事件。
$('#content').on("click", "#edit", function () {
$.each($('.edt'), function (i, k) {
$(k).removeClass("edt");
k.innerHTML = "<input type='text' id='' value='" + k.innerHTML + "' />";
});
});
$('#content').on("click", "input", function () {
alert("Some event.");
});