Html更改标签文本的一部分

时间:2013-05-02 23:10:21

标签: javascript jquery html

我有以下javascript代码:

window.toggle = function() {
 if( document.getElementById("calendar").style.display=='none' ){
     document.getElementById("calendar").style.display = '';
     $(".icon-chevron-down").removeClass("icon-chevron-down").addClass("icon-chevron-up");
     document.getElementById("label").innerText = "Hide calendar";
 } else {
     document.getElementById("calendar").style.display = 'none';
     $(".icon-chevron-up").removeClass("icon-chevron-up").addClass("icon-chevron-down");
     document.getElementById("label").innerText = "Show calendar";
 }
}  

我想只更改标签的一部分,因为我不想删除引导程序图标。像这儿: http://jsfiddle.net/RkaQD/2/

您是否有任何提示如何应对这些消失的引导图标?

编辑:

也许我会写一些我想要的例子:

v'显示日历'

^'隐藏日历'

v'显示日历'

^'隐藏日历'

依旧......

2 个答案:

答案 0 :(得分:2)

我认为它是innerHTML而不是innerText。

答案 1 :(得分:1)

您面临的问题是因为您正在使用ID标签更改元素的内部文本....此标签除了文本外还有两个图标元素。

我所做的是将文本“隐藏日历”和“显示日历”放入带有ID的范围,然后更改范围的内部文本(而不是标签) 所以没有:

<i class="icon-chevron-down"></i>
    Show calendar  
<i class="icon-calendar"></i>

你必须

<i class="icon-chevron-down"></i>
    <span id="display_text">Show calendar</span>  
<i class="icon-calendar"></i>

更改JavaScript上的2行
document.getElementById("label").innerText = "Hide calendar";
document.getElementById("label").innerText = "Show calendar";

document.getElementById("display_text").innerText = "Hide calendar";
document.getElementById("display_text").innerText = "Show calendar";

希望这会有所帮助。