Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Кросс браузерный массив (https://javascript.ru/forum/jquery/29403-kross-brauzernyjj-massiv.html)

titans 26.06.2012 15:32

Кросс браузерный массив
 
Всем привет. Такой вопрос. Не получается кросс браузерно заполнить двумерный массив. Пример кода:
$arr=[];//объявлен глобально
....
$a=0;
........
$arr[$a]=[$(this).find("name").text(),$(this).find("genre").text(),$(this).find("made").text(),$(this).find("director").text(),$(this).find("time").text(),$(this).find("year").text()];

Работает заполнение только в FireFox. Есть какие-то решения?

ksa 26.06.2012 15:48

Цитата:

Сообщение от titans
Есть какие-то решения?

Начать таки стоит с полного тестового примера...

titans 26.06.2012 15:51

Вы предлагаете начать все занового с кросс браузерного тестового примера, и потом его нарастить? Дело в том, что я и начинал всё с тестового примера. Элементарно $arr[0]=["",""]; не работает.

ksa 26.06.2012 15:58

Цитата:

Сообщение от titans
Дело в том, что я и начинал всё с тестового примера. Элементарно
$arr[0]=["",""];
не работает.

Бивас, тест!

var a=[];
a[0]=[1,2];
alert(a[0]);


Работает! :)

titans 26.06.2012 16:10

Вот вам код где не работает. Может это из-за парсера xml?
$(function(){

$.ajax({
     type: "GET",
     url: "film.xml",
     dataType: "xml",
     success: parseXml
   });
$arr=[];
$a=0;

function parseXml(xml)
 {
	$("#selecet").empty();
	$(xml).each(function()
	   {
		$a=0;
			  $(this).find("film").each(function()
					{
					$("#selecet").append( $('<option class="selp" value="'+$(this).find("name").text()+'">'+$(this).find("name").text()+'</option>'));
						
						
						$arr[$a]=[$(this).find("name").text(),$(this).find("genre").text(),$(this).find("made").text(),$(this).find("director").text(),$(this).find("time").text(),$(this).find("year").text()];
						
						$a++;
						
					}); 
	   });
	};
 

parseXml();

});

titans 26.06.2012 17:10

Вопрос решён. Таки был не кросс браузерный парсер.

Gvozd 27.06.2012 00:21

Цитата:

Сообщение от titans
$(xml).each(function()

так не стоит парсить
так вы парсите XML движком HTML-а
лучше так:

$.parseXML(xml);//только тут будет ссылка на документ, а не корневую ноду. она чуть глубже

Или сразу так:
$.parseXML(xml).children();//аналогично $(xml) выдает корневую ноду, но при этом лишен кучи недостатков


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