2013-05-02 3 views
1

У меня есть следующий код JavaScript:Html изменить часть текста метки

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/

Есть ли у вас какие-либо намеки, как справиться с этими неупорядочивающими значками начальной загрузки?

Edit:

Может быть, я пишу несколько примеров того, что я хотел бы иметь:

v 'календарь выставок'

^'скрыть календарь'

v 'календарь выставок'

^'скрыть календарь'

и так далее ...

ответ

1

Проблема, с которой вы сталкиваетесь, заключается в том, что вы меняете внутренний текст элемента с меткой идентификатора .... эта метка содержит два знаковых элемента внутри него, а также текст.

Что я сделал укладывал текст «Скрыть календарь» и «Показать календарь» в пролет с 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> 

И изменить 2 линии на JavaScript из

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"; 

Надеется, что это помогло.

+0

+1 Большое спасибо, человек. Это действительно помогло! – JosephConrad

+0

Нет проблем. Рад, что смог помочь :) – Thanos

2

Я думаю, что это innerHTML вместо innerText.

+0

Для * текста * это либо 'textContent' (Mozilla, Webkit, Opera), либо' innerText' (для IE); 'innerHTML', как следует из названия, для установки HTML. –

+0

Он имеет право. Рабочий пример http://jsfiddle.net/RkaQD/3/ – WooCaSh

+1

Спасибо, ребята, но я хотел бы изменить 'show' to 'hide' text в "show calendar". И это не работает? – JosephConrad

Смежные вопросы