Присвоение значение элементам с одинаковым классом
Здравствуйте, подскажите пожалуйста, как можно сделать присвоение элементу класса разные значения.
Например есть тэг span с одинаковым классом test нужно по парно выводить данные.
for(var i=0;i<test.length;i++) // считаем количество элементов с одинаковым классом
{
objr=test[i]; // присваиваем переменной каждый элемент
objr.innerHTML = 1; //выводим в каждый span единицу
теперь нужно добавить условие, чтобы первым 2-ум элементам вывел "1", второй паре +1 и т.д. каждым последующим 2-м элементам прибавлялась единица. Итог должен быть таким: <span class="test">1</span><span class="test">1</span><br> <span class="test">2</span><span class="test">2</span><br> <span class="test">3</span><span class="test">3</span> и т.д. пытался добавить условие, если элемент 1 и 2-ой, то выводим 1, если элемент 3-ий и 4-ый то +1, и т.д., но код не работает. |
var f = function(n) {
var i = 0, j = 0;
for (; i < n; i++) {
i%2 ? j : j++;
console.log(j);
}
};
f(10);
// вывод
//1
//1
//2
//2
..
//5
//5
|
пробовал ваше предложение, проверил как работает
var f = function(n) {
var i = 0, j = 0;
for (; i < n; i++) {
i%2 ? j : j++;
console.log(j);
}
};
alert(f(10));
при выводе пишет undefinet А вообще можете на моем примере сделать?
function postwarid() {
var test = document.getElementsByClassName("test"); // тег span с одинаковым классом
var number = document.getElementsByName("number")[0]; // input для ввода числа
for(var n=0;n<test.length;n++){ //считаем количество элементов span с одинаковым классом
objr=test[n];
objr.innerHTML = number.value; // выводим в каждый span значение инпута
}
}
в моем варианте каждому тегу span с классом test добавляется значение введеный в input. Одинаковых классов каждый раз бывает разным, т.к. страница генерируется динамически. теперь сюда надо добавить условие. |
Цитата:
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
</style>
<script type="text/javascript">
function go() {
var os=document.getElementsByTagName('span');
var inc=1,typ=0,i;
for (i=0; i<os.length; i++) {
if (os[i].className!='test') {
continue
};
os[i].innerHTML=inc;
if (typ++==1) {
inc++;
typ=0;
};
};
};
</script>
</head>
<body>
<span class="test">...</span><span class="test">...</span><br>
<span class="test">...</span><span class="test">...</span><br>
<span class="test">...</span><span class="test">...</span><br>
<button onclick='go()'>Go</button>
</body>
</html>
|
Цитата:
Получилось сделать! Все работает! |
<span class="test"></span><span class="test"></span><br>
<span class="test"></span><span class="test"></span><br>
<span class="test"></span><span class="test"></span><br>
<span class="test"></span>
<script>
window.onload = function () {
var spans = document.getElementsByClassName('test');
var len = spans.length;
var n = 1;
for (var i = 0; i < len; i = i + 2) {
spans[i].innerHTML = n;
if (spans[i + 1]) {
spans[i + 1].innerHTML = n;
n++;
}
}
}
</script>
|
Mesher,
а вы чего в alert'e получить ожидали??? функция ничего не возвращает, а служит только оберткой, чтобы можно было динамически задавать ограничение для цикла. |
| Часовой пояс GMT +3, время: 13:21. |