Помогите с условием
Всем привет. Помогите пожалуйста, немного не разберусь.
Хочу обернуть каждое число (value контейнера), в тег написал так:
jQuery(document).ready( function($) {
var $html = '';
var $i = [0, 1, 2, 3];
$('.my-count > div').each( function(){
var box_size = $(this).val().length;
$html = $(this).text();
if( box_size >=1 && box_size <=3 && box_size <= 4){
$(this).html('<span>'+$html[0]+'</span><span>'+$html[1]+'</span>');
} else if ( box_size >=1 && box_size >=2 && box_size <= 4 ){
$(this).html('<span>'+$html[0]+'</span><span>'+$html[1]+'</span><span>'+$html[2]+'</span>');
} else if ( box_size >=1 && box_size >=2 && box_size >=3 ){
$(this).html('<span>'+$html[0]+'</span><span>'+$html[1]+'</span><span>'+$html[2]+'</span><span>'+$html[3]+'</span>');
} else {
$(this).html('<span>'+$html+'</span>');
}
});
});
Обернуло все элементы в тег
<div class="my-count">
<div ><span> 0 </span></div>
<div ><span> 00 </span></div>
<div ><span> 0 </span></div>
<div ><span> 0 </span></div>
</div>
Делал тестовый, ввел 4 цыфры в блок и написал для 4-х элементов, обернуло каждый, а когда пишу условие, такая вот не хорошая вещь получается. Прошу помощи, новичек в JQ & JS Заранее благодарю. С ув. Александр. |
<html>
<head>
</head>
<body>
<div class="my-count">
<div >1</div>
<div >2</div>
<div >3</div>
<div >4</div>
</div>
<script>
d=document.querySelector("div")
d.innerHTML=d.innerHTML.replace(/>([^<]+)<\s*\//g, "><span style='background: red'>$1</span></")
</script>
</body>
</html>
|
Попробовал на своем примере, никакой реакции.
|
Да, извиняюсь, неправильно понял вот эту фразу: "каждое число".
<html>
<head>
</head>
<body>
<div class="my-count">
<div >foo1</div>
<div >2bar3</div>
<div >345</div>
<div >47896baz</div>
</div>
<script>
function gen(){ return Math.floor(Math.random()*9) }
function genColor(){return "#"+gen()+gen()+gen()}
function wrap(a,b){
if(b) return ">"+b.replace(/\d/g, function(b){return "<span style='color: white; background: "+genColor()+"; font-size: "+3+gen()+"'>"+b+"</span>"})+"</"
}
d=document.querySelector("div")
d.innerHTML=d.innerHTML.replace(/>([^<]+)<\s*\//g, wrap)
</script>
</body>
</html>
|
Спасибо большое, сделал пример все работает. Но бэк-енд пишу на php. Распарсиваю JSON Object, и вывожу через echo обработаные данные и проблема в том, что когда пишу
s = $('#my-block > div').text().length;
Alert выводит что у меня в строке 22 - 23 символа, то-есть лишние пробелы откуда-то берутся. Пробовал решить задачу через strim() тоже без толку, пробелы так и остаются. Сам уже немного запутался. :) |
Alexandr_Prylipko,
В php не шарю, помочь ничем не могу, извиняй. Средствами js можно убрать пробелы вот так
alert("foo bar baz".replace(/ +/g, ""))
//>>>> foobarbaz
Любые пробельные символы вот так:
alert("foo bar baz".replace(/\s+/g, ""))
//>>>> foobarbaz
но какие там у тебя лишние, хз |
Спасибо большое за помощь. Попробую далее сам разобраться
|
| Часовой пояс GMT +3, время: 02:19. |