Javascript 单击以显示隐藏文本
我一直在试图弄清楚如何通过JavaScript隐藏和显示文本。我在这里加载了一个脚本来生成消息数据 在这里,我用下面的代码从Javascript 单击以显示隐藏文本,javascript,html,css,Javascript,Html,Css,我一直在试图弄清楚如何通过JavaScript隐藏和显示文本。我在这里加载了一个脚本来生成消息数据 在这里,我用下面的代码从邮件生成器.js中抓取发件人 var sender = currentMessage.sender; var body = currentMessage.body; var date = currentMessage.date; var subject = currentMessage.subject;
邮件生成器.js
中抓取发件人
var sender = currentMessage.sender;
var body = currentMessage.body;
var date = currentMessage.date;
var subject = currentMessage.subject;
// Sender
var mySenderElement = document.createElement('div');
mySenderElement.setAttribute('id','sender')
mySenderElement.innerHTML = sender;
mainElement.appendChild(mySenderElement);
这在HTMLRick Roger
现在我要获取消息数据,我在这里执行此操作
// Body
var myBodyElement = document.createElement('div');
myBodyElement.setAttribute('id','body');
myBodyElement.innerHTML = body;
mainElement.appendChild(myBodyElement);
我的结果是在HTML中
<div id="body">We need to save Buffy from Hansel and Gretel. Well, you were busy trying to get yourself lit on fire. The only thing Willow was ever good for, the only thing I ever had going for me were those moments, just moments, where Tara would look at me and I was wonderful. Everyone's a hero in their own way, in their own not that heroic way. Planet's coming up a mite fast.</div>
我们需要从汉瑟和格蕾特手中救出布菲。嗯,你忙着让自己着火。威洛唯一擅长的事,我唯一能为我做的事就是那些时刻,塔拉看着我的时刻,我非常棒。每个人都以自己的方式成为英雄,以自己的方式而不是那种英雄的方式。行星很快就要升起来了。
我希望在页面加载时隐藏body
。在body
的位置,我想有一点文字说明单击以阅读消息,当单击body
时,会显示消息
这里是指向我的小提琴的链接
我觉得解决方案与.addEventListener(“单击”,myFunction)有关代码>只是不确定如何隐藏段落并在文本中显示“单击阅读邮件”
任何帮助都将不胜感激。刚开始学习JS,所以请记住我是初学者。即使只是给我指出正确的方向也很酷:)
谢谢首先添加显示:无代码>到您的
。这将在加载页面时隐藏元素
然后添加一个按钮,该按钮将在单击时将div的显示更改为block
,并将其自身的显示更改为none
<button id="b" onclick="document.getElementById('body').style.display='block';document.getElementById('b').style.display='none';">Click to show message</button>
单击以显示消息
你应该表现得很好 首先添加显示:无代码>到您的
。这将在加载页面时隐藏元素
然后添加一个按钮,该按钮将在单击时将div的显示更改为block
,并将其自身的显示更改为none
<button id="b" onclick="document.getElementById('body').style.display='block';document.getElementById('b').style.display='none';">Click to show message</button>
单击以显示消息
你应该表现得很好 在您学习的过程中,我将做大量的解释,所以请不要这样做;博士:-)
两种不同的方法:
独立元素
您想做的事情有三/四个部分:
使myBodyElement
开始隐藏
页面上有其他内容显示“点击阅读信息”
让其他东西响应点击
…通过隐藏/删除自身(大概)并显示myBodyElement
步骤1通过将元素的display
属性设置为none
完成。在您的行设置id
属性之后:
myBodyElement.style.display = "none";
第2步是通过向页面添加另一个元素来完成的,与执行myBodyElement
元素的方式大致相同。你已经有了密码
步骤3完全按照您的指示完成,在步骤2中添加的元素上使用addEventListener
:
clickToRead.addEventListener("click", function() {
// Code to handle the click here
}, false);
第4步是通过再次使用.style.display
属性完成的,这次将myBodyElement.style.display
设置为“block”
(通常显示div
的方式)并将的.style.display
元素设置为无”
:
或者,您可以删除单击阅读元素:
clickToRead.addEventListener("click", function() {
// Remove clickToRead
clickToRead.parentNode.removeChild(clickToRead);
clickToRead = null;
// Show myBodyElement
myBodyElement.style.display = "block";
}, false);
交换文本
另一种完全不同的方法是使用myBodyElement
本身,只需替换其innerHTML
。这实际上要简单得多
而不是你的
myBodyElement.innerHTML = body;
行,请使用您的消息:
myBodyElement.innerHTML = "Click to read message";
然后像前面一样添加处理程序,但添加到myBodyElement
:
myBodyElement.addEventListener("click", function() {
// Handle click here
}, false);
然后您可能已经知道该做什么:在处理程序中再次设置innerHTML
:
myBodyElement.addEventListener("click", function() {
myBodyElement.innerHTML = body;
}, false);
现在,还有一个难题:我们仍然在响应点击并重新设置innerHTML
。这可能不太理想,我们应该停止对点击的响应。这增加了(一点)复杂性:我们需要记住作为处理程序使用的函数,以便以后删除它:
var handler = function() {
myBodyElement.innerHTML = body;
myBodyElement.removeEventListener("click", handler, false);
};
myBodyElement.addEventListener("click", handler, false);
在你们学习的过程中,我会做很多解释,所以请不要这么做;博士:-)
两种不同的方法:
独立元素
您想做的事情有三/四个部分:
使myBodyElement
开始隐藏
页面上有其他内容显示“点击阅读信息”
让其他东西响应点击
…通过隐藏/删除自身(大概)并显示myBodyElement
步骤1通过将元素的display
属性设置为none
完成。在您的行设置id
属性之后:
myBodyElement.style.display = "none";
第2步是通过向页面添加另一个元素来完成的,与执行myBodyElement
元素的方式大致相同。你已经有了密码
步骤3完全按照您的指示完成,在步骤2中添加的元素上使用addEventListener
:
clickToRead.addEventListener("click", function() {
// Code to handle the click here
}, false);
第4步是通过再次使用.style.display
属性完成的,这次将myBodyElement.style.display
设置为“block”
(通常显示div
的方式)并将的.style.display
元素设置为无”
:
或者,您可以删除单击阅读元素:
clickToRead.addEventListener("click", function() {
// Remove clickToRead
clickToRead.parentNode.removeChild(clickToRead);
clickToRead = null;
// Show myBodyElement
myBodyElement.style.display = "block";
}, false);
交换文本
另一种完全不同的方法是使用myBodyElement
本身,只需替换其innerHTML
。这实际上要简单得多
而不是你的
myBodyElement.innerHTML = body;
行,请使用您的消息:
myBodyElement.innerHTML = "Click to read message";
然后像前面一样添加处理程序,但是添加到myB