Jquery 如何隐藏元素内部的元素?
我的Jquery 如何隐藏元素内部的元素?,jquery,html,Jquery,Html,我的p元素中有一个span元素。单击跨度时,将显示可编辑区域 我想将span隐藏在我的可编辑input区域中 我怎样才能做到 HTML 改用,因为这符合我理解的你想要的。它是一个成熟的HTML5,您看到的就是(您得到的)HTML5编辑器,用于中的示例。具有您想要的所有和更多功能。尝试在此上下文中使用 $("span").click(function() { //...other codes var val1 = $("p").contents()[0].nodeValue; //.
p
元素中有一个span
元素。单击跨度时,将显示可编辑区域
我想将span
隐藏在我的可编辑input
区域中
我怎样才能做到
HTML
改用,因为这符合我理解的你想要的。它是一个成熟的HTML5,您看到的就是(您得到的)HTML5编辑器,用于中的示例。具有您想要的所有和更多功能。尝试在此上下文中使用
$("span").click(function() {
//...other codes
var val1 = $("p").contents()[0].nodeValue;
//...other codes
});
或者使用
.firstChild
$("span").click(function() {
$(".text").css("color", "red");
var val1 = $("p")[0].firstChild.textContent;
$(".editable").show().val(val1);
});
最好的选择是将所需的文本包装成如下所示的跨度 HTML:
以下是您可以做的:
- 获取p元素的文本节点并获取不带span标记的文本
- 使用输入字段文本和span html设置p标记的html
$(函数(){
$(“.editable”).hide();
$(“span”)。单击(函数(){
$(“.text”).css(“颜色”、“红色”);
var val1=$('p').contents().filter(函数(){
返回this.nodeType==3;//Node.TEXT\u Node
}).text();
$(“.editable”).show().val(val1);
});
$(“.editable”).keyup(函数(){
var keyed=$(“.editable”).val();
$(“.text”).html(键入+”✐;”;
});});代码>
Lorem ipsum.&x2710
在css中使用display:none
$("span").click(function() {
$(".text").css("display", "none"); //<--
var val1 = $("p").text();
$(".editable").show().val(val1);
});
$(“span”)。单击(函数(){
$(“.text”).css(“display”,“none”);//试试这个:可以克隆p元素并删除span,然后读取文本
$("span").click(function() {
$(".text").css("color", "red");
var val1 = $("p").clone().find('span').remove().end().text();
$(".editable").show().val(val1);
});
嘿,您可以在代码中尝试:
$("span").click(function() {
$(".text").css("color", "red");
var val1 = $("p").text();
$(".editable").show().val(val1);
$(this).hide();//added this line to hide the span
});
您可以通过使用CSS伪元素将unicode铅笔字符放置在HTML中来实现这一点,这样它就可以作为p
的text()
内容的一部分被忽略。这使得JS更加简单,意味着您根本不必更改它。尝试以下方法:
$(“.editable”).hide();
$(“.edit触发器”)。单击(函数(){
$(“.text”).css(“颜色”、“红色”);
var val1=$(“p”).text();
$(“.editable”).show().val(val1);
});
$(“.editable”).keyup(函数(){
var keyed=$(“.editable”).val();
$(“.text”).text(键入);
});
p.edit-trigger:after{
内容:'\2710';
字体大小:20px;
光标:指针;
}
.可编辑{
单词break:打破一切;
}
Lorem ipsum
您好,不要试图用jQuery进行调整……您只需将span
放在段落
之外即可解决问题……请检查
HTML
<p class="text">Lorem ipsum.</p>
<span class="pencil">✐</span>
<div class="clear"></div>
<input type="text" class="editable"/>
jQuery(与您的一样,我没有编辑任何内容)
为什么这可能会回答这个问题,只有链接答案不是未来的证明。尝试为你的答案添加更多细节,以供未来读者阅读,例如,当你链接到的网站不再是可访问的好网站,但缺点是它使整个p
元素可点击为真,这是唯一真正的负面因素。哥们,你真是太棒了艺术我是认真的,真的,但首先要把问题读清楚。哈哈谢谢夸奖。我读了这个问题,很多人也回答了你的问题…我只是想让我提供一个简单的选择。。。
$("span").click(function() {
$(".text").css("display", "none"); //<--
var val1 = $("p").text();
$(".editable").show().val(val1);
});
$("span").click(function() {
$(".text").css("color", "red");
var val1 = $("p").clone().find('span').remove().end().text();
$(".editable").show().val(val1);
});
$("span").click(function() {
$(".text").css("color", "red");
var val1 = $("p").text();
$(".editable").show().val(val1);
$(this).hide();//added this line to hide the span
});
<p class="text">Lorem ipsum.</p>
<span class="pencil">✐</span>
<div class="clear"></div>
<input type="text" class="editable"/>
span {
font-size:20px;
cursor:pointer;
}
.editable {
word-break:break-all;
}
p.text,.pencil{
float:left;
}
.pencil{
margin-top:10px;
}
.clear{
clear:both;
}
$(".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);
});