2014-10-13 9 views
2

Я попытался изо всех сил решить мою собственную проблему, но у меня возникли проблемы с запуском довольно простого сценария JS.JavaScript: изменить стиль элемента, заданный классом

Я пытаюсь изменить цвет шрифта текста, который содержит символ «-» для указанного класса элемента.

Это то, что я получил:

<html> 
<body> 
<script> 
<!-- 
function myFunction() 
{ 
var elements = document.getElementsByClassName("example"); 

for(var i = 0, length = elements.length; i < length; i++) 
{ 
    if(elements[i].textContent.indexOf('-') != -1) 
     { 
      elements[i].style.color = red; 
     } 
    } 
} 
--> 
</script> 
<table> 
    <tr> 
     <td class="example">-100<td> 
     <td class="example">100<td> 
    </tr> 
</table> 
</body> 
</html> 

Что я сделал не так?

Редактировать: Это последний код, с которым я работал, который отлично работает.

<!DOCTYPE html> 
<html> 
<body> 

<script type="text/javascript"> 
<!-- 
function myFunction() 
{ 
    var elements = document.getElementsByClassName("example"); 

    for(var i = 0, length = elements.length; i < length; i++) 
    { 
     if(elements[i].textContent.indexOf('-') !== -1) 
      { 
       elements[i].style.color = "red"; 
      } else 
      { 
       elements[i].style.color = "green"; 
      } 
    } 
} 
--> 
</script> 

<table> 
<tr> 
<td class="example">-100<td> 
<td class="example">100<td> 
</tr> 
</table> 
<script type="text/javascript"> 
<!-- 
myFunction(); 
--> 
</script> 
</body> 
</html> 
+0

'.indexOf() не используется' должным образом это вызов функции, которая принимает строку и возвращает целое число. – jfriend00

+0

'if (elements [i] .textContent.indexOf ('-')! = -1)' – artm

+0

@TimDickinson вы также отметили ответ Трой Джицци? – vusan

ответ

4

Я считаю, что в общей сложности три ошибки здесь:

  1. Не вызывая функцию вообще. Это может быть предметом заботы как так:

    <body onload="myFunction();">

  2. Неправильное использование indexOf. Вот правильный путь:

    if(elements[i].textContent.indexOf('-') !== -1)

  3. Не цитирует цвет буквальным. Поместите red в кавычки.

    elements[i].style.color = "red";

+0

Блестящий! Спасибо Трою. –

0

Вы не называется ваша функция JS & использование elements[i].textContent.indexOf('-') === 0 вместо текущего кода. Полный код для вас -

function myFunction() 
{ 
var elements = document.getElementsByClassName("example"); 

for(var i = 0, length = elements.length; i < length; i++) 
{ 

if(elements[i].textContent.indexOf('-') === 0) 
    { 

     elements[i].style.color = "red"; 
    } 
} 
} 

</script> 
<table> 
<tr> 
    <td class="example">-100<td> 
    <td class="example">100<td> 
</tr> 
</table>