Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Преобразование в int (https://javascript.ru/forum/dom-window/51119-preobrazovanie-v-int.html)

sloyi 24.10.2014 15:35

Преобразование в int
 
Ребят подскажите как преобразовать строковую переменную в int если в строке ест ьпробел например :

var perem = 1 406 руб.


если сделать так
peremenaya= parseInt(perem);

он выдаст 1 т.к. есть пробел, а как получиьт все число?

sloyi 24.10.2014 15:38

Еще есть вопросик. можно ли сделать событие на изменение допустим блока
<div class='sum'></div>

если этот див изменился то мы выполняем какое либо действие

ksa 24.10.2014 15:41

Цитата:

Сообщение от sloyi
как преобразовать строковую переменную в int если в строке ест ьпробел

Как вариант...

var perem = '1 406 руб.'
alert(parseInt(perem.replace(/\s+/gm,'')));

ksa 24.10.2014 15:42

Цитата:

Сообщение от sloyi
можно ли сделать событие на изменение допустим блока

Нет такого события... :no:

sloyi 24.10.2014 15:43

Понятно спасибо большое))))

Aetae 24.10.2014 15:43

1. Предварительно очистить от не-цифр:
parseInt(perem.replace(/\D/g,''))
2. Можно но не нужно. Блок сам по себе меняться не может, его меняет какой-то код, и дополнения, соответственно, следует вносить именно туда. Исключением(и то не всегда) тут может быть только userscript.

Цитата:

Сообщение от ksa (Сообщение 337338)
Нет такого события... :no:

События почти нет(ибо deprecated), а вот observer есть. Но, см. выше.

sloyi 24.10.2014 17:47

Всем большое спасибо. Помогли оба способа работают.

terminator-101 24.10.2014 21:59

Цитата:

Сообщение от sloyi
если этот див изменился то мы выполняем какое либо действие

Его можно очень легко свелосипедить используя, например, setInterval. Только интервал ставь как можно больше, по возможности,чтобы производительность не падала. В цикле setInterval проверяешь содержимое блока на предмет изменения, если изменился, вызываешь действие, вот и все.

Aetae 25.10.2014 03:22

terminator-101, это самый плохой вариант из возможных.

terminator-101 25.10.2014 03:45

Aetae,
Почему?

Aetae 25.10.2014 04:00

terminator-101,
Потому что иди нахуй, вот почему.©

Это очевидные вещи, объяснять их трололошке смысла нет.

terminator-101 25.10.2014 12:27

Aetae,
Да иди ты сам нахуй. Ты бля, урод, базворды вызубрил, а почему и чо, сам нихуя не знаешь. Потому что дядя сказал, а если против дяди попрешь, он тебя в жопу выебет, вот поэтому. А свой мозг включать не судьба, за отсутствием оного.

kostyanet 25.10.2014 12:56

Такие задачи просто не надо ставить, а если встало - прикладывать лед и искать косяки своей уродской логики. Я про onchange блока. У него атрибутов дох, всякого хлама как гавна - что там под ченчдж в частности может подразумеваться? Да что угодно. ВОт берите то, что угодно меняет это что угодно и там приклеивайте что угодно. В этом есть смысл, а в том что придумал ТС - нету.

Следовательно если к этому баяну прикрутить еще и литавры в виде интервала, это будет лажанто крещендо.

kostyanet 25.10.2014 12:58

Форма от слова форма, форма формализована, через ж, но так или иначе формализована. Там есть что определить как изменения. А какой-то arbitrary division - это сферический конь в вакууме. А все потому что эти сраные дивы внезапно начали называть модальными окнами. Ептыть... зальют с альфой, нарисуют тайтл и крест суррогатами before & after - хуякс, модальное окно получилось! Ипическая сила, где у него тред, где хэндл, где колбэк, где мессаги - хз, но все равно - кокно.

Понаехали в программирование уеб-дизайнеры и всю терминологию обоссали. Вот такой смысл.

kostyanet 25.10.2014 13:06

Чтоб вам понятно было до конца - любая кнопка в ОС - это окно, любой чек-бокс - окно. Поэтому в слове Windows есть глубокий смысл. Там в окне туева хуча окон и все они завязаны через свои рукоятки за которые с одной стороны дергает их юзер, а с другой за ними следит искусственный интеллект. Это на VB берешь кнопку и рисуешь, берешь окно и рисуешь, тебе сразу всю корзину событий унаследованных выдают - хавай сколько влезет. А чтобы самому все это сделать - это вам не див с бифоре и афтер нарисовать в цсс. Поэтому любые изменения блока являются лишь рендером, отображением измненений ОБЪЕКТА который прикинулся окном в недрах вашего скрипта. Следовательно с него, с объекта и спрос.

bes 25.10.2014 13:10

ничего плохого в onchange содержимого div нет, хотя бы потому что div - это универсальный блок, то есть должен, по умолчанию, уметь реагировать на х-еву тучу событий, с х-я ли в каком-то с-аном input onchange есть, а в div нет

<style>
.sum {
	border: solid 1px;
}
</style>
<div class='sum' contenteditable="true">write here</div>
<script>
document.querySelector(".sum").oninput = function () {
	console.log(this.innerHTML);
}
</script>

kostyanet 25.10.2014 13:21

Пиздец! Я же говорю понаехали. Им все похуй. Опасности большой конечно нет, но под влиянием этих уебдизайнеров будут правиться спецификации на следующие генерации скриптов, вот увидите. И вы будете делать как эти синтезаторы образов захотели.

Цитата:

Сообщение от bes
с х-я ли в каком-то с-аном input onchange есть, а в div нет

С такого хуя что внутрь инпута нельзя засунуть другой инпут, нельзя вообще ничего засунуть, а можно только высунуть. А в утробу вашего сферического коня можно запихать нахуй весь сайт и про onchange ЧЕГО вы тогда напишите скрипт?

kostyanet 25.10.2014 13:24

Это называется уровень абстракции мышления ниже плинтуса. Допереть что в диве может быть стопицот дивов и в каждом стопицот дивов и в каждом стопицот спанов - а спан имеет право на ончендж? Ну тогда вот что получается: пишем Div и нам захуяривают тонну унаследованных пропертей и методов от окна. Понятно? Через пять вложений div ваш бразуер вывалится на клаву.

kostyanet 25.10.2014 13:26

Ну то есть в каждом div окажется свой браузер. Так понятно?

bes 25.10.2014 13:27

Цитата:

Сообщение от kostyanet
и про onchange ЧЕГО вы тогда напишите скрипт?

всё стандартно: всего содержимого
если есть вложенные элементы, то onchange всплывает, по target определяется в каком элементе произошло изменение и можно взять контент только оттуда

bes 25.10.2014 13:28

Цитата:

Сообщение от kostyanet
Ну то есть в каждом div окажется свой браузер. Так понятно?

а с фреймами не также, кого смущает? только здесь всё гораздо уже, только onchange

kostyanet 25.10.2014 13:31

Блеать... ну так сделайте сайт из пары сотен вложенных друг в друга фреймов. Слабо?

bes 25.10.2014 13:33

Цитата:

Сообщение от kostyanet
Блеать... ну так сделайте сайт из пары сотен вложенных друг в друга фреймов. Слабо?

читай внимательно
Цитата:

Сообщение от bes
только onchange

или у тебя браузер не справляется с кликами?

kostyanet 25.10.2014 13:33

Цитата:

Сообщение от bes
только здесь всё гораздо уже, только onchange

"Помяни мое слово Поттер". Уебдизайнеры будут долбать Ораклю пока не додолбают. Большинство не может быть неправым и Оракля им сделает. Поэтому давить их надо пока они маленькие.

Еще раз - onchange ЧЕГО вы собираетесь отслеживать в диве набитом всякой хуетой под завязку?

kostyanet 25.10.2014 13:35

Вопрос риторический, вы сразу не ответили и не сможете ответить. Поэтому чтобы onchange был, придется запретить пихать в div другие дивы, а равно все что на него похоже. В итоге мы получим что? Правильно - input. Все, возьмите с полки пирожок.

bes 25.10.2014 13:37

Цитата:

Сообщение от kostyanet
Еще раз - onchange ЧЕГО вы собираетесь отслеживать в диве набитом всякой хуетой под завязку?

читай внимательно, обновляй тему перед отправкой поста

kostyanet 25.10.2014 13:37

Вариант с div'ом в который пихать что-либо кроме текстовой ноды запретил САМ СЕБЕ дизайнер - сугубо проприетарный, то есть абсолютно не абстрактный, конкретный.

Достаточно еще одного уеб-дизайнера, который такими императивами не страдает и либа обслуживающая такой конкретный див встанет раком.

bes 25.10.2014 13:39

Цитата:

Сообщение от kostyanet
Вариант с div'ом в который пихать что-либо кроме текстовой ноды

х-ню не неси, всё содержимое - это не только текстовый узел

kostyanet 25.10.2014 13:46

Цитата:

Сообщение от bes
всё стандартно: всего содержимого
если есть вложенные элементы, то onchange всплывает, по target определяется в каком элементе произошло изменение и можно взять контент только оттуда

Ладно, это неоперабельно, веб-дизайнер далек от программирования как проститутка от четыретактного двигателя.

На самом деле это типично среди нас и в программировании довольно часто встречается, я про явление не видеть дальше своих яиц.

Я задавал вопрос имеет ли спан право на он-чендж? Естественно да, если див имеет. Все элементы будут наследоваться с интерфейсом имеющим такое вот прерывание, а база его будет находиться где? Правильно - в безымянной текстовой ноде, именно она же меняется, а не хуй собачий. А этих текстовых нод в межклеточном просранстве как гавна в загоне. Охуенная у вас модель получается.

Ладно, идите вешайте ончендж на #text.

kostyanet 25.10.2014 13:48

Цитата:

Сообщение от bes
х-ню не неси, всё содержимое - это не только текстовый узел

Ясно, вы вообще ничерта не понимаете. Ваши сраные теги - это разметка, которой может не быть вообще кроме единственного тега html.

С какого бодуна вы решили что <tag> - элемент интерфейса? Потому что их рисуют такими. То есть как чучка - что вижу то пою.

kostyanet 25.10.2014 13:50

Терапия: убейте свои css со скриптами и окунитесь в реальность которую от вас Матрица скрывает. Сразу весь свой "интерфейс" увидите как он и должен быть разметкой.

bes 25.10.2014 13:50

<body>
	<input>

</style>
<script>
document.body.onchange = function (event) {
	var target = event.target;
	if (target.tagName = "INPUT") {
		alert(target.value);
	}
}
</script>


kostyanet, здесь оnchange всплыло с input-a
представь, что body - это div, а input - это вложенный в него div (а input.value - div.innerHTML) и назови причину, чем всплытие onchange на div-ах хуже, чем, например, тех же кликов

terminator-101 25.10.2014 14:05

Цитата:

Сообщение от kostyanet
сраные теги - это разметка, которой может не быть вообще кроме единственного тега html.

Ну а <input /> -- это не разметка? Когда ты получаешь что-то в виде объекта, это становится элементом интерфейса. huy=document.getElementsByTagName("huy")[0] -- huy -- это элемент интерфейса, объект, а <huy>huy</huy> -- это разметка. Одно другому не мешает.

kostyanet 25.10.2014 14:10

Вы настойчиво доказываете свою блондинкость. Чем дизельный двигатель хуже надувных колес? Ну как тебе сказать Маша, понимаешь... тут я понимаю что Маша никогда этого не поймет, нету у нее соответствующих структур в мозге, никогда она ничего сама не делала, юзала только готовое и воображает теперь невесть что.

Цитата:

Сообщение от bes
и назови причину, чем всплытие onchange на div-ах хуже, чем, например, тех же кликов

Хуже тем что onchange это не onlick. То есть дизельный двигатель не надувная шина.

kostyanet 25.10.2014 14:12

Цитата:

Сообщение от terminator-101
Ну а <input /> -- это не разметка?

И что он размечает? Продемонструйте. Ну типа там вот так, или вот так, а может и вот так, я уж не говорю о так

kostyanet 25.10.2014 14:15

На самом деле господа, латентных долбоящеров дохрена и больше. Они ростят гроздья гнева за унижения нанесенными всеми этим угребищными инпутами и когда-то начнут собирать урожай и мы получим такой хтмл, ну типа pdf'а и все сразу узбагоятся.

kostyanet 25.10.2014 14:25

Не смог найти метафору гипертекста для блондинок. Попробую напрямую:

Текст0<div>Текст1<div>Текст2</div>Текст1</div>Текст0

Расставьте tabindex правильно.

kostyanet 25.10.2014 14:28

То есть понимаете у всех нормальных людей табиндекс перемещается по осям xy, а у этих уебдизайнеров запросто может херачить по оси z. Жмешь таб, а фокус все уже и уже и вот он уже в точку ушел, вот уже дырку провертел и с той стороны монитора в доширак вывалился.

Это все стеб, конечно, просто я даже не знаю с чем сравнить этот бред - давать тексту, ну тексту блин, какие-то там самостоятельные события.

Кто его правит - тот за события и отвечает. Вот и все.

bes 25.10.2014 14:30

Цитата:

Сообщение от kostyanet
Хуже тем что onchange это не onlick. То есть дизельный двигатель не надувная шина.

верно заметил - это два разных события :D
очевидно, ты утверждаешь, что определить, что содержимое узла изменилось и пустить эту информацию вверх по dom - явная проблема, спи спокойно

bes 25.10.2014 14:37

Цитата:

Сообщение от kostyanet
Это все стеб, конечно, просто я даже не знаю с чем сравнить этот бред - давать тексту, ну тексту блин, какие-то там самостоятельные события.

не знал, что div - это TEXT_NODE :cray:
какому тексту, есть разметка, по ней строится DOM


Часовой пояс GMT +3, время: 09:13.