我写了这段代码: HTML
<p>
Once upon a time there was a man
who lived in a pizza parlor. This
man just loved pizza and ate it all
the time. He went on to be the
happiest man in the world. The end.
</p>
JS:
var words = $("p:first").text().split(" ");
var text = words.join("</span> <span>");
$("p:first").html("<span>" + text + "</span>");
$("span").click(function() {
$(this).html('<input value="'+$(this).text() +'"/>');
$(this).unbind("click");
});
现在我希望当用户点击输入框打开的单词时,我希望当输入框中的用户blurs
时,它应该相应地更改p
中的单词。
问题
如何在显示输入框的文本之前和之后获取所有文本?
然后重置p
?
答案 0 :(得分:1)
刚刚将其更改为:
var words = $("p:first").text().split(" ");
var text = words.join("</span> <span>");
$("p:first").html("<span>" + text + "</span>");
$("span").click(function() {
$(this).html('<input class="mm" value="' + $(this).text() + '"/>');
$(this).unbind("click");
});
$("#hmm").delegate(".mm", "blur", function() {
$(this).replaceWith("<span>"+$(this).val()+"</span>");
$(this).bind("click");
});
它就像魅力一样
答案 1 :(得分:0)
我对'模糊'事件有一些奇怪的行为,所以我稍微修改了你的简介,试试这个 - 希望它仍能给你你想要的效果 -
var words = $("p:first").text().split(" ");
var text = words.join("</span> <span>");
$("p:first").html("<span>" + text + "</span>");
$("span").click(function() {
$("span input[class=tb]").each(function(
{$(this).parent('span').html($(this).val())
});
$(this).html('<input class="tb" value="'+$(this).text() +'"/>');
$(this).unbind("click");
});