У меня такое ощущение, что это довольно просто, но мой JS не очень хорош.
У меня есть div-класс
<div class=" foo1 foo2" style="top: 0px;">
Я могу видеть в chrome, что у этого div есть атрибут, подобный этому:
.foo2
{
position: fixed;
width: 100%;
}
Я пытаюсь использовать JS для настройки атрибутов foo2, но я не знаю, как это сделать.
var changeFoo = document.getElementById ('foo2');
changeFoo.position = "relative";
Как мне вызвать foo2.position и изменить его?
Попробуй это:
Это чистое решение для JavaScript.
function update_this_css(matchClass) {
var elems = document.getElementsByTagName('*'), i;
for (i in elems) {
if((' ' + elems[i].className + ' ').indexOf(' ' + matchClass + ' ')
> -1) {
elems[i].style.position = "relative";
}
}
}
update_this_css('foo2');
Вы пытаетесь заставить JS идентифицировать элемент, используя свой ID ('foo2'), который вы не установили. Если вы хотите использовать имя класса, вы должны использовать:
document.getElementsByClassName
иначе вы должны указать вашему элементу свой желаемый идентификатор.
Другая проблема заключается в том, что вы просто имеете:
changeFoo.position
где, как вам нужно использовать:
changeFoo.style.position
Чтобы заставить ваш код работать, вам необходимо просмотреть результаты:
var divs = document.getElementsByClassName('foo');
for(var i=0; i<divs.length; i++) {
divs[i].style.position='fixed'
}
Вы можете сделать это как:
var foo= document.getElementsByClassName('foo2');
for(var i=0;i<foo.length;i++){
foo[i].style.position='relative';
}
Самый простой способ, который я нашел до сих пор, - использовать jQuery, потому что обычный javascript намного длиннее и сложнее писать. Получите JS-библиотеку на jquery.com. Изучите jQuery один раз и скажите спасибо себе навсегда. Вы можете использовать селектор CSS для получения элементов без каких-либо идентификаторов.
Затем используйте его так.
$('.foo2').css('position', 'relative');
.style
:foo2.style.position = 'relative';
, См. Developer.mozilla.org/en-US/docs/Web/API/HTMLElement.style