Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击以显示隐藏文本_Javascript_Html_Css - Fatal编程技术网

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;

我一直在试图弄清楚如何通过JavaScript隐藏和显示文本。我在这里加载了一个脚本来生成消息数据

在这里,我用下面的代码从
邮件生成器.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);
这在HTML
Rick 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