Изменение содержимого класса с помощью Javascript

Я начал читать JavaScript в W3schools и тестировать/изменять несколько вещей в примерах, которые они дают, чтобы я мог видеть, что делает, но пока не смог определить синтаксис. Ниже приведен исходный код для изменения содержимого тега p,на ссылке к нему.

<p id="demo">
JavaScript can change the content of an HTML element.
</p>

<script>
function myFunction()
{
x=document.getElementById("demo");  // Find the element
x.innerHTML="Hello JavaScript!";    // Change the content
}
</script>

<button type="button" onclick="myFunction()">Click Me!</button>

Я хочу знать, как изменить содержимое с тем же классом, но не удалось, как вы можете видеть, что пример ниже не работает. Скрипка кода ниже.

<p class="demo">
JavaScript can change the content of an HTML element.
</p>

<p class="demo">Yolo</p>

<script>
function myFunction()
{
x=document.getElementsByClassName("demo");  // Find the element
x.innerHTML="Hello JavaScript!";    // Change the content
}
</script>

<button type="button" onclick="myFunction()">Click Me!</button>

Если бы вы могли показать мне, как ^ ^ "и помочь мне понять, является ли" getElementById " переменной, которая может быть чем-то другим или это команда?

3 ответов


ваш X - это массив элементов. попробуйте использовать loop:

<body>

<p class="demo">JavaScript can change the content of an HTML element.</p>    
<p class="demo">Yolo</p>   

<button type="button" onclick="myFunction()">Click Me!</button>

<script>        
function myFunction()
{
x=document.getElementsByClassName("demo");  // Find the elements
    for(var i = 0; i < x.length; i++){
    x[i].innerText="Hello JavaScript!";    // Change the content
    }

}

</script>
</body>

посмотреть скрипка


обратите внимание, как при использовании:

x=document.getElementsByClassName("demo"); 

это элементы вместо элемента. Это потому, что он возвращает массив HTMLCollection всех элементов с одним определенным именем класса. Для того, чтобы бороться с этим, вы можете выбрать первый элемент в массиве:

x=document.getElementsByClassName("demo")[0];

проще использовать jQuery с Javascript

посмотреть этот пример: http://jsfiddle.net/37jq9/3/

Если вы используете jQuery вместо вызова

x=document.getElementsByClassName("demo");

можно использовать

x = $('.demo');

но вы можете просто вызвать функцию, как это:

$(document).ready(function(){
    $('button').click(function(){
        $('.demo').text('Hello Javascript');
    })   
})