我的p元素中有一个span元素.单击跨度时,会显示可编辑区域. 我想在可编辑的输入区域中隐藏跨度. 我该怎么做? JSFIDDLE HTML p class="text"Lorem ipsum.span#x2710;/span/pinput type="text" class="editable"/
我想在可编辑的输入区域中隐藏跨度.
我该怎么做?
JSFIDDLE
HTML
<p class="text">Lorem ipsum.<span>✐</span></p> <input type="text" class="editable"/>
JS
$(".editable").hide();
$("span").click(function() {
$(".text").css("color", "red");
var val1 = $("p").text();
$(".editable").show().val(val1);
});
$(".editable").keyup(function() {
var keyed = $(".editable").val();
$(".text").text(keyed);
});
尝试在这种情况下使用
contents(),
$("span").click(function() {
//...other codes
var val1 = $("p").contents()[0].nodeValue;
//...other codes
});
DEMO
或者使用.firstChild的javascript解决方案
$("span").click(function() {
$(".text").css("color", "red");
var val1 = $("p")[0].firstChild.textContent;
$(".editable").show().val(val1);
});
DEMO
最好的选择是在下面的跨度中包装所需的文本,
HTML:
<p class="text"> <span class="textInner">Lorem ipsum.</span> <span class="edit">✐</span> </p> <input type="text" class="editable"/>
JS:
$("span.edit").click(function() {
var $parent = $(this).closest(".text").css("color", "red");
$parent.next(".editable").show().val($(this).prev(".textInner").text());
});
DEMO
