我有一个div,我需要抢HTML的内容(所以自然我使用HTML())...使用HTML()获取更改内容
但是,它们是文本字段。每当我抓住div(包含文本字段)的内容时,它抓住最初的HTML,而不是由最终用户更改任何数据...
这里是JS bin版本..更改输入字段,运行该功能,你会看到,它只会采取该字段的初始值...
任何方法可以解决这个问题吗?
我有一个div,我需要抢HTML的内容(所以自然我使用HTML())...使用HTML()获取更改内容
但是,它们是文本字段。每当我抓住div(包含文本字段)的内容时,它抓住最初的HTML,而不是由最终用户更改任何数据...
这里是JS bin版本..更改输入字段,运行该功能,你会看到,它只会采取该字段的初始值...
任何方法可以解决这个问题吗?
http://jsbin.com/oleni3/5/edit
尝试了这一点^
代码:
$(document).ready(function() {
$('div#top input').change(function() {
$(this).attr('value', $(this).val());
});
$('#click').click(function() {
var _curHtml = $("div#top").html();
$("div#bottom").html(_curHtml);
});
});
您获取div的HTML。你想获得输入框的值:
$(document).ready(function() {
$('#click').click(function() {
var _curHtml = $("#data").val();
$("div#bottom").html(_curHtml);
});
});
好点...基本上我的问题是我构建了一个内容切换器,它将HTML拖放到一个容器中进行查看,每个内容窗格都有很多输入字段..所以我必须找出一些完整的东西不同... – stewart715 2011-05-11 15:00:02
没办法用html()来完成。您必须使用val()来获取每个输入的值。您可以使用
$("input").each(function() {
doSomething($(this).val());
}
如果它使生活更轻松。
$(document).ready(function() {
$('#data').change(function() {
$(this).attr('value', $(this).val());
})
$('#click').click(function() {
var _curHtml = $("div#top").html();
$("div#bottom").html(_curHtml);
});
});
这工作..这里的链接http://jsbin.com/oleni3/2/edit
UPDATE:如果你有很多inputs
在div里面,你可以使用这个http://jsbin.com/oleni3/6/edit
$(document).ready(function() {
$('#click').click(function() {
var _curHtml = $("#data").val();
$("div#bottom").html(_curHtml);
});
});
最简单的黑客会是这样的:
$("div#bottom input").val($("div#top input").val());
获取更新输入的值并将其设置为克隆。
更新的链接:
已经有插件创建的 - 看到答案:jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
哈哈山寨.... – 2011-05-11 14:52:17