Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Что за херня с NodeValue (https://javascript.ru/forum/events/53988-chto-za-khernya-s-nodevalue.html)

Frost-56rus 26.02.2015 21:01

Что за херня с NodeValue
 
if(document.getElementsByTagName('div')[13] != ''){
	var Strokkka = document.getElementsByTagName('div')[13].firstChild.nodeValue;
	var chislo = Number(Strokkka.replace(',','.'));
	var celoeChislo = Math.floor(chislo);
	alert(celoeChislo);
	}


Выдает ошибку: Uncaught TypeError: Cannot read property 'nodeValue' of null

Как её побороть?

Aetae 26.02.2015 21:23

NodeValue тут не причём. Вам чёрным по белому написано:
"Не могу прочитать свойство 'nodeValue' у null(у пустоты)".
Что тут не понятного?

рони 26.02.2015 21:24

Цитата:

Сообщение от Frost-56rus
!= ''

!= void(0)

рони 26.02.2015 21:27

Frost-56rus,
или
if(document.getElementsByTagName('div')[13]){

Frost-56rus 26.02.2015 22:02

Ни один из способов не помог, он все равно думает что ноль получает.
Это скрипт расширения, который на одной из страниц должен ловить 13й div.

рони 26.02.2015 22:24

Frost-56rus,
сделайте макет

Aetae 26.02.2015 22:54

Ну что за бред то:-E .
Разве не очевидно что не document.getElementsByTagName('div')[13] === null, а document.getElementsByTagName('div')[13].firstChild === null. Иначе бы и ошибка была: Uncaught TypeError: Cannot read property 'firstChild' of null.

Вы тут все поехали чтоле?!

рони 26.02.2015 23:26

Aetae,
ok

ruslan_mart 27.02.2015 07:31

var elem = document.getElementsByTagName('div')[13];

if(elem && elem.firstChild){
	var num = Math.floor(+elem.firstChild.nodeValue.replace(',', '.'));
	alert(num);
}

Frost-56rus 28.02.2015 09:38

Цитата:

Сообщение от Ruslan_xDD (Сообщение 358665)
var elem = document.getElementsByTagName('div')[13];

if(elem && elem.firstChild){
	var num = Math.floor(+elem.firstChild.nodeValue.replace(',', '.'));
	alert(num);
}


Спасибо, проблема решилась)

Еще вопросик. Есть поле:

<input type="text" name="amountInteger" class="fixedRub dataField" placeholder="0" value="" maxlength="6" data-keyfilter="{&quot;mask&quot;:&quot;pint&quot;,&quot;autotab&quot;:{&quot;chars&quot;:[&quot;.&quot;,&quot;,&quot;],&quot;direction&quot;:&quot;next&quot;}}" tabindex="6">


Как не зная id изменить атрибут на type hidden?

var inputRub = document.getElementsByClassName('fixedRub');
inputRub.setAttribute('type', 'hidden');


Не работает, выдает ошибка Uncaught TypeError: undefined is not a function

рони 28.02.2015 11:08

Цитата:

Сообщение от Frost-56rus
inputRub[0].setAttribute

:-?

Frost-56rus 28.02.2015 12:28

Цитата:

Сообщение от рони (Сообщение 358974)
:-?

Спасибо, не знал что цикл идет)

ruslan_mart 28.02.2015 20:58

document.getElementsByName('amountInteger')[0].type = 'hidden';


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