2015-07-27 2 views
0

Можно ли изменить значения HTML с помощью JavaScript-функции?Я хочу изменить значения html div с помощью javascript

Вот пример:

div class="fb-page" data-href="https://www.facebook.com/ConnectCommunications?fref=ts" 
    data-width="450" data-hide-cover="false" data-show-facepile="true" data-small-header="false" 
    data-show-posts="true"></div 

Теперь я хочу изменить data-show-facepile от true к false через JavaScript onclick -Event.

Заранее благодарен!

+0

Что вы пробовали до сих пор? Они могут пригодиться - http://www.w3schools.com/jsref/met_element_setattribute.asp, http://api.jquery.com/attr/ –

+0

нажмите на что? –

+0

очень простой, использование.data(), см. мои анны ниже – BhavO

ответ

1

С чистого JavaScript в браузере:

document.getElementByClassName('fb-page').setAttribute('data-show-facepile', false) см here для получения дополнительной информации о том, что. Это может быть умным, чтобы дать элементу id, а затем вместо этого использовать document.getElementById().

Теперь, если у вас есть кнопка <button id="clickme"> Click me! </button> вы можете добавить обработчик:

document.getElementById('clickme').addEventListener('click', function(){ 
    document.getElementByClassName('fb-page')[0].setAttribute('data-show-facepile', false) 
}); 

Обратите внимание, что если есть более чем один элемент fb-page -класса, то элемент, который вы хотите изменить, не может быть первый элемент возвращаемого списка.


С jQuery: $('.fb-page').attr('data-show-facepile', false). Docs. Если вы укажете элементу id, вместо этого вы используете $('#id').

Так что, если у вас есть кнопка: <button id="fb-show-button">Click me! </button> добавить обработчик:

$('#fb-show-button').click(function(){ 
    $('.fb-page')[0].attr('data-show-facepile', false) 
}) 

Нота сверху также влияет на этот пример.


Почему я не упоминаю использование id вместо класса? Поскольку, когда есть определенный элемент, который вы хотите обработать, идентификатор идентифицирует его однозначно, так как только один элемент может иметь определенный идентификатор. Более чем один элемент может иметь класс fb-page. Вот почему методы, получающие элементы класса, возвращают массив.

+0

Ответьте только на это с помощью ванильных JS и jQuery, не уверенных в использовании W3Schools в качестве ссылки, хотя ха-ха! –

+0

Hah, дважды проверил и обновил ответ. Благодаря! – Esso

+0

Это лучше imo! MDN - это мое оружие выбора для ссылок :) –

0

Предполагая, что вы хотите, чтобы нажать на DIV, например:

$('.fb-page').on('click', function(){ 
    $(this).data('show-facepile', false); 
}); 
0

Очень просто:

1) Дайте Див идентификатор
2)

function YourEvent() { 
    $('IdOfYourDiv').prop('data-show-facepile', true) 
} 
0

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

<button>Go</button> 
<div class="fb-page" data-href="https://www.facebook.com/ConnectCommunications?fref=ts" data-width="450" data-hide-cover="false" data-show-facepile="true" data-small-header="false" data-show-posts="true">Test</div> 

JQuery:

alert(jQuery('.fb-page').data('show-facepile')); 
jQuery('button').on('click', function(){ 
    jQuery('div').data('show-facepile', false); 
    alert(jQuery('.fb-page').data('show-facepile')); 
}); 

http://jsfiddle.net/2taxxnwn/

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