繁体   English   中英

将加号(+)更改为条(|)号

[英]Change plus ( + ) sign to bar ( | ) sign

我只是想创建一些内容,当单击该内容时,它将隐藏或显示项目下方的文本。 我的问题是“单击h1如何将+号更改为|号。代码:

HTML:

<h1>+ Welcome</h1>
<p>This is the welcome greeting</p>

CSS:

p {
    display: none; 
}

JavaScript:

$( "h1" ).click(function() {
    if ($('p').is(':visible')){
        $('p').hide();              
    } else {
        $('p').show();      
    }
});

JsFiddle

由于单击的是h1 ,因此可以在函数内使用$(this)

$( "h1" ).click(function() {
    if ($('p').is(':visible')){
        $('p').hide();
        $(this).text('+ Welcome');
    } else {
        $('p').show();
        $(this).text('| Welcome');    
    }
});

演示

您应该将+放在元素上并进行更改:

的HTML

<h1><span>+</span> Welcome</h1>
<p>This is the welcome greeting</p>

jQuery的

$( "h1" ).click(function() {
    if ($('p').is(':visible')){
        $('p').hide();
        $(this).find('span').text('+');
    } else {
        $('p').show();
        $(this).find('span').text('|');      
    }
});

jsFiddle演示

尝试使用::before伪元素:

<div class="wrapper">
    <h1>Welcome</h1>
    <p>This is the welcome greeting</p>
</div>
.wrapper > h1:before {
  content: '|';
}
.wrapper.hide > h1:before {
  content: '+';
}
.wrapper.hide > p {
    display: none;
}
$(".wrapper").addClass('hide').each(function() {
    var $wrapper = $(this);
    $wrapper.children('h1').on('click', function() {
        $wrapper.toggleClass('hide');
    });
});

演示版

您可以使用.text()doc )访问标签的内容:

$( "h1" ).click(function() {
    if ($('p').is(':visible')){
        $('p').hide();
        $(this).text("+ Welcome");
    } else {
        $('p').show();
        $(this).text("| Welcome");
    }
});

但是,正如其他人指出的那样,如果将特殊字符移动到其自己的<span>元素内,则会更容易。 还可以考虑给要与之交互的元素指定一个id ,因为$("p")将匹配页面中的所有 p元素。

尝试将“ +”放在它自己的<span>标记内。

HTML:

<h1> <span id='symbol' class="plus">+</span> Welcome </h1>

jQuery的:

$("h1").click(function(){
    var span = $("#symbol");

    if(span.hasClass("plus")){
        span.html("|");
        span.removeClass("plus");
        span.addClass("pipe");
    }else{
        span.html("+");
        span.removeClass("pipe");
        span.addClass("plus");
    }
});

希望能帮助到你!

演示

这是你的代码

的HTML

<h1><span>+</span> Welcome</h1>
<p>This is the welcome greeting</p>

的JavaScript

$( "h1" ).click(function() {
    if ($('p').is(':visible')){
        $('p').hide();
        $(this).find('span').text('+');
    } else {
        $('p').show();      
        $(this).find('span').text('|');
    }
});

如果您不想更改标记,并且希望能够在不修改JavaScript的情况下灵活地更改h1中的其他文本,那么可以使用JavaScript 替换功能。

$( "h1" ).on('click', function() {
    var heading = $(this).html();
    if ($('p').is(':visible')){
        $('p').hide();
        $(this).html(heading.replace('|', '+')); 
    } else {
        $('p').show();
        $(this).html(heading.replace('+', '|')); 
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM