Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как загрузить html в переменую и распарсить по дивам? (https://javascript.ru/forum/jquery/37122-kak-zagruzit-html-v-peremenuyu-i-rasparsit-po-divam.html)

Kvark 09.04.2013 13:35

выкинул этот див вобще и заменил на ":::" сплит по нему разделил что мне нужно, не совсем то что спрашивал, но цели достиг :)

Kvark 09.04.2013 13:48

теперь конструкция поиска контента див не работает :( как то может не так запрашиваю?
У меня элемент состоит теперь из трех дивов (контент с тегами):
<div class="time1">
   12:00
</div>
<div class="time2">
   13:00
</div>
<div class="msg">
   Обедать
</div>

- как можно вычленить содержимое дивов?
...
alert(MyArray[i].find('.msg').html());

несрабатывает почемуто...

tsigel 09.04.2013 13:53

MyArray - это что?

Kvark 09.04.2013 13:59

это мой массив:
var MyArray = data.split(':::');

где data это переменная куда загрузил содержимое файла
элемент массива это 3 дива, пытаюсь достучаться до их содержания через такую конструкцию:
$.each(MyArray, function (i, element) 
	{
		//alert(MyArray[i].filter().find('.msgbody').html());
		alert(element.find('.msg').html());
	});

tsigel 09.04.2013 14:44

Не называйте массив с большой буквы. С большой буквы принято называть классы.
Пользуйтесь console.log для вывода отладочной информации. Попробуйте написать свою функцию в консоле. Поработайте со своей функцией. Почитайте об операциях со строками. Если элемент массива MyArray - это строка с 3-мя дивами, то методы filter, find и т. д. здесь не будут работать, так как они работают с элементами html

tsigel 09.04.2013 14:49

Для примера несколько методов для работы со строками:
search, test, replace, split;
Каждая строка в свою очередь - это массив символов, изучите методы работы с массивами.
Т.е. к каждой строке мы можем обратиться методом length и получить количество символов в ней, можем обратиться к любому символу строки
str[num];//где num - номер символа

Все это базовые навыки работы с javascript (да и с любым другим языком программирования). Изучайте массивы и строки.

tsigel 09.04.2013 14:52

Собственно тут есть важный вопрос. Для чего вам нужна эта строка? вы добавляете её на сайт из файла или с сайта забираете информацию?

Kvark 09.04.2013 14:55

ok, попробую - пока без понятия как этой консолью пользоваться :(
а насчет методов - они прекрасно работают если строка содержит html:
<div id="msg_1">
<div class="time1">
   12:00
</div>
<div class="time2">
   13:00
</div>
<div class="msg">
   Обедать
</div>
</div>

и тогда такой код прекрасно работает, а если убрать обрамляющий див - неработает :( значит ошибка где то в синтаксе я полагаю...
$.each(myArray, function (i, element) 
	{
		var fileMsg = $(element).filter('#msg_1').find('.msg').html();
		alert(fileMsg);
	});

Kvark 09.04.2013 14:59

Цитата:

Сообщение от tsigel (Сообщение 245040)
Все это базовые навыки работы с javascript (да и с любым другим языком программирования). Изучайте массивы и строки.

Да, спасибо. Но я свободно програмирую на С++ и VB.Net и вот теперь изучаю джиквери. Тоесть я хочю сказать что методика и алгоритмика мне понятны, и проблем не возникает с логикой обработки, но вот приминение методов яваскрипта к елементам дом для меня пока еще что то непонятное. В чем и пытаюсь разобраться с вашей помощью.

Kvark 09.04.2013 15:06

Цитата:

Сообщение от tsigel (Сообщение 245041)
Собственно тут есть важный вопрос. Для чего вам нужна эта строка? вы добавляете её на сайт из файла или с сайта забираете информацию?

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


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