我试图用包含输入值的跨度替换输入,以便能够在单击按钮时将它们切换回来。我认为这最容易分两个阶段完成 - 添加<span>[input value]</span>
在输入前面,然后隐藏输入。唯一的问题是我在第一部分遇到了麻烦。我正在尝试类似的事情
$('#container').find('input')
.parent()
.prepend('<span></span>') // this effectively creates: <span></span><input value=____>
但是,在前置语句 $(this) 中似乎未定义,所以我不能这样做
.prepend('<span>'+$(this).children('input').val()+'</span>')
由于有多个输入,我不能简单地将输入值放入变量中。我该怎么做?
对于更新的问题:
您可以执行类似的操作(基于评论,每行进行编辑):
$('input', context).each(function() {
$("<span />", { text: this.value, "class":"view" }).insertAfter(this);
$(this).hide();
});
您可以在此处查看更详细的演示,其中包含每行编辑切换.
对于原来的问题:
你会想要使用.replaceWith()为了这:
$('#container').find('input').each(function() {
$(this).replaceWith("<span>" + this.value + "</span>");
});
The .each()创建一个闭包,其中this
指的是输入元素,所以你可以使用this.value
例如。
为了确保编码得到处理,请将其扩展一点以使用.text(), 像这样:
$('#container').find('input').each(function() {
$(this).replaceWith($("<span />").text(this.value));
});
您可以在这里尝试演示
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)