使用jQuery更改所选元素的内部html

使用jQuery更改所选元素的内部html,jquery,twitter-bootstrap,Jquery,Twitter Bootstrap,我正在使用引导导航选项卡 <ul class="nav nav-tabs shorttabs" id="homeTabs"> <li data-have="Pictures" class="active"><a href="#pictures">Inspiring Pictures</a></li> <li data-have="Vid

我正在使用引导导航选项卡

<ul class="nav nav-tabs shorttabs" id="homeTabs">
                        <li data-have="Pictures" class="active"><a href="#pictures">Inspiring Pictures</a></li>
                        <li data-have="Videos"><a href="#videos">Videos</a></li>
                        <li data-have="Quotes"><a href="#quotes">Quotes</a></li>
                        <li data-have="People"><a href="#people">People</a></li>
                        <li data-have="Books"><a href="#books">Books</a></li>
                        <li data-have="Messages"><a href="#books">Messages</a></li>

                      </ul>

原始选项卡功能是使用单独的选择器
$(“#homeTabs”).nav()选择的。只需更改超链接的文本即可

$(".shorttabs li a").on("click", function(){
    // Remove inspiring from all anchors
    $(".shorttabs li a").each(function(){
        $(this).text($(this).text().replace("inspiring",""));
    });

    // Add to current one 
    $(this).text("inspiring" + $(this).text);

 }); 

只要这样做:

$(".shorttabs li a").on("click", function () {
    $this = $(this).text();
    // alert($this);
    $(".shorttabs li a").each(function () {
        //alert($(this).text());
        if ($(this).text() == $this) {
            if ($(this).text().indexOf("Inspiring") < 0) {
                $(this).text("Inspiring" + $(this).text());
            }
        } else {
            $(this).text($(this).text().replace("Inspiring", ""));
        }
    });
});
$(.shorttabs li a”)。在(“单击”上,函数(){
$this=$(this.text();
//警报(本美元);
$(“.shorttabs li a”)。每个(函数(){
//警报($(this.text());
if($(this).text()==$this){
if($(this).text().indexOf(“激励”)<0){
$(this.text)(“鼓舞人心的”+$(this.text());
}
}否则{
$(this.text($(this.text().replace(“鼓舞人心的”);
}
});
});

当替换为“text.replace”时,原有的选项卡功能会中断。我得到控制台错误“没有方法‘替换’”。但是,如果我删除该行,您的代码将正常工作。但我也致力于删除之前添加的“鼓舞人心”。有没有其他方法可以替代之前附加的“激励”代码,但它会增加“激励”链接的点击次数。为了修复此错误,应该删除以前添加的标签。这样做可以保留未更改的标签功能。谢谢,但是,单击同一链接两次,它会一次又一次地附加到文本上。不应该是这样的,如何解决这个问题?
$(".shorttabs li a").on("click", function () {
    $this = $(this).text();
    // alert($this);
    $(".shorttabs li a").each(function () {
        //alert($(this).text());
        if ($(this).text() == $this) {
            if ($(this).text().indexOf("Inspiring") < 0) {
                $(this).text("Inspiring" + $(this).text());
            }
        } else {
            $(this).text($(this).text().replace("Inspiring", ""));
        }
    });
});