2016-10-20 5 views
2

Я пытаюсь изменить цвет текста с помощью JavaScript, но что-то же просто, как это не будет работать, и я не понимаю, почему ..Почему мой стиль CSS не меняется?

<!DOCTYPE html> 
 

 
<html> 
 
    <script> 
 
     var y = document.getElementById('ya'); 
 
     y.style.color = "red"; 
 
    </script> 
 

 
<p style="font-size:100px;" id="ya"> 
 
    hi 
 
</p> 
 

 
</html>

+0

взгляд на свой браузер для разработчиков инструментов консоли ошибки –

+6

переместить блок сценария ниже р блока –

+0

[Почему JQuery или метод DOM, такой как getElementById, не находит элемент?] (https://stackoverflow.com/questions/14028959/why-does-jquery-or-a-dom-method-such-as-getelementbyid-not-find-the -элемент) –

ответ

4

Попробуйте, это работает. Это связано с тем, что скрипт теперь запускается после рендеринга элемента DOM.

<p style="font-size:100px;" id="ya"> 
 
    hi 
 
</p> 
 

 
<script> 
 
    var y = document.getElementById('ya'); 
 
    y.style.color = "red"; 
 
</script>

1

Поскольку был загружен Javascript до вашего р тега. Если вы проверите консоль вы увидите сообщение об ошибке «TypeError: Не удается прочитать свойство„стиль“в нуль

<!DOCTYPE html> 
 

 
<html> 
 
    
 
<p style="font-size:100px;" id="ya"> 
 
    hi 
 
</p> 
 
    <script> 
 
     var y = document.getElementById('ya'); 
 
     y.style.color = "red"; 
 
    </script> 
 

 
</html>

0

Элемент с id='ya' не определен в то время вы написали JavaScript Помещенный.. JavaScript в вашей голове и использовать onload = function(){/* code here */} или addEventListener('load', function(){/* code here */}), и он должен работать каждый раз (ну, может быть, не первый способ, если у вас несколько загрузок. Но есть способ обойти это, назначив onload для var, а затем выполнив после другой onload). Я бы использовал внешний JavaScript, поэтому он хранится в кеше клиентов, это улучшит производительность сайта. убедитесь, что вы изменили имя своего файла, если вы обновляете свой JavaScript, если ваш сайт развернут, или просто очистите кеш, если вы все еще работаете над ним.

0

сначала вы можете проверить jQuery.min.js в составе вашего файла ваш код в порядке.

тест это один

<script> 
     var y = document.getElementById('ya'); 
     y.css("color", "red"); 
    </script> 
1

Элемент id вы пытаетесь найти не в DOM, как ваш скрипт работает, прежде чем элемент DOM делает.

Ваша позиция DOM должна быть первой, а затем скриптом для управления элементом DOM.

Есть два решения этой проблемы:

1. Переместить ваш скрипт ниже DOM.

<p style="font-size:100px;" id="ya"> 
    hi 
</p> 
<script> 
    var y = document.getElementById('ya'); 
    y.style.color = "red"; 
</script> 

2. Использование JQuery document.ready()

<p style="font-size:100px;" id="ya"> 
    hi 
</p> 
<script> 
$(document).ready(function() { 
    var y = document.getElementById('ya'); 
    y.style.color = "red"; 
}); 
</script> 
Смежные вопросы