2013-06-18 4 views
1

Я следующий код в cshtml странице:вставка текста в тег HTML с помощью Javascript

<ul id="menu"> 
    <li><a href="..." >Link1</a></li> 
    <li><a href="..." >Link2</a></li> 
</ul> 

И я хочу, чтобы изменить класс тега, когда некоторое условие истинно. Я попытался это, но он не работает:

<ul id="menu"> 
    <li 
    <script> if (..condition..) 
     document.write(" class = \"newclass\""); 
    </script> 
    ><a href="..." >Link1</a></li> 
    <li><a href="..." >Link2</a></li> 
</ul> 

Не могли бы вы предложить способ сделать это?

Спасибо, Женя

+1

это не допустимый синтаксис HTML. – Raptor

+1

Какое условие необходимо выполнить? Если класс применяется ко всем элементам 'li' в меню или к определенному элементу' li'? Если конкретный, какой элемент? – pete

+0

'document.write' пишет на выходе ... а не сама разметка! – IcyFlame

ответ

2

Попробуйте давать li идентификатор, как показано ниже:

<li id="list"><a href="..." >Link1</a></li> 
<li><a href="..." >Link2</a></li> 

Затем в JavaScript попробовать:

if (condition) { 
    var element = document.getElementById("list"); 
    element.className = "newclass"; 
} 

JSFiddle:

http://jsfiddle.net/bVGFP/

+1

Я только что отредактировал ссылку на переменную при установке свойства 'className'. – BenM

0

Вы должны использовать document.innerHTML, потому что document.write нужна страница перезагрузки.

<ul id="menu"> 
       <li 
        //This is not valid syntax 
        <script> if (..condition..) 
           document.write(" class = \"newclass\""); 
        </script> 
        ><a href="..." >Link1</a></li> 
       <li><a href="..." >Link2</a></li> 
      </ul> 

Тогда для вас случае, я предлагаю вам

<ul id="menu"> 
        <li id="po"><a href="..." >Link1</a></li> 
        <li ><a href="..." >Link2</a></li> 
       </ul> 

<script> 
document.getElementById("po").className = "newclass"; 
         </script> 
+3

HTML-идентификаторы должны быть уникальными ... –

+1

* «' document.write' нужна страница перезагрузки »* Это правильно. После того, как документ полностью проанализирован, 'documen.write' ** перепишет ** весь документ, он не перезагрузит страницу. Однако использование 'document.write' в то время, когда документ все еще разбирается, отлично (теоретически). Он просто вставляет данные, где он вызывается. Проблема здесь в том, что OP пытался использовать теги '