Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   NodeList и Array (https://javascript.ru/forum/misc/56320-nodelist-i-array.html)

caetus 10.06.2015 07:04

NodeList и Array
 
я что то не так делаю или с NodeList так не прокатит ? или работает только slice с NodeList ?

<body>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>

</body>

<script>
var e = document.getElementsByTagName('p');
console.log(e.length);
Array.prototype.shift.call(e)

console.log(e.length);
</script>

tsigel 10.06.2015 09:14

caetus,
А что вы хотите сделать? Удалить элемент или получить массив со всеми елементами кроме первого?
<body>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>

</body>

<script>
var e = [].slice.call(document.getElementsByTagName('p'));
alert(e.length);
e.shift();

alert(e.length);
</script>

sogoodweather 10.06.2015 12:47

<html>
<head>
</head>
<body>

<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
 
 
<script>
collection =document.getElementsByTagName('p')
e=[].map.call(collection, function(x){return x})
e.shift()


alert([collection.length, e.length])

</script>




</body>
</html>

sogoodweather 10.06.2015 12:53

Мораль сей басни такова: к HMLCollection невозможно применить деструктивную операцию as is.

Endy 10.06.2015 22:05

:)
<body>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/es6-shim/0.32.0/es6-shim.js"></script>
</body>

<script>
var e = Array.from(document.getElementsByTagName('p'));
alert(e.length);
e.shift();
alert(e.length);
</script>

sogoodweather 10.06.2015 22:51

Endy,
Я вот реально не понимаю, какой смысл в привязывании функций к именам функций (типо -- классам). Если бы вот так было
<html>
<head>
</head>
<body>

<p>foo</p>
<p>foo</p>
<p>foo</p>
<p>foo</p>


<script>

collection=document.getElementsByTagName("p")

HTMLCollection.prototype.toArray=function(){return [].map.call(this, function(x){return x})}

alert(collection.toArray().map(function(x){return x.innerHTML}))

</script>

</body>
</html>

, это еще имело бы какой-никакой смысл.
Эти идиоты вообще уже там охренели. Я уже не говорю, что сахар на кажды пук вообще не нужен.

caetus 11.06.2015 04:39

всем спасибо , разобрался )


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