Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как обработать элементы текстового списка по отдельности? (https://javascript.ru/forum/misc/56867-kak-obrabotat-ehlementy-tekstovogo-spiska-po-otdelnosti.html)

Alex1233 07.07.2015 17:13

Как обработать элементы текстового списка по отдельности?
 
Здравствуйте!

Такой вопрос, подскажите пожалуйста.

Есть на странице DIV элемент в котором есть список ссылок, каждая с новой строки (без знака переноса строки) - отдается в таком виде движком сайта, т.е. примерно так:

http://sayt.ru/ssilka-1.html
http://sayt.ru/ssilka-2.html
http://sayt.ru/ssilka-3.html
http://sayt.ru/ssilka-sovsem-drugaya.html
http://sayt.ru/ssilka-ssylka.html
http://sayt.ru/ssilka-6.html
http://sayt.ru/ssilka-7.html


Нужно каким то образом, очень желательно (если можно) на JQUERY, получить все эти ссылки по отдельности на обработку в JQUERY - как это сделать?

рони 07.07.2015 18:17

Alex1233,
var arr =  $.trim($("div").text()).split(/\s+/);


Цитата:

Сообщение от Alex1233
с новой строки (без знака переноса строки)

- это не осилил.

kostyanet 08.07.2015 04:42

Ну то есть \n у него есть, а \r нету - с новой строки без знака переноса строки, или наоборот, хз.

ТС, парсинг текстов всегда интимная вещь, не считая интима с сервером. Находите признаки по которым можно строку поколоть на элементы массива и вперде.

Alex1233 08.07.2015 17:03

Цитата:

Сообщение от рони (Сообщение 378073)
Alex1233,
var arr =  $.trim($("div").text()).split(/\s+/);


- это не осилил.

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

А по переносу я имел ввиду - что нету <br> :)

Alex1233 08.07.2015 18:11

А такой еще вопрос, как добавить в скрипт весь этот список строк, без лишнего вывода его на странице, т.е. на прямую?

Пробую так:
var arr =  $.trim("[xfvalue_allLinks]").split(/\s+/);


в итоге получается что-то типа этого, и ничего не работает:
var arr =  $.trim("http://sayt.ru/ssilka-1.html
http://sayt.ru/ssilka-2.html
http://sayt.ru/ssilka-3.html
http://sayt.ru/ssilka-sovsem-drugaya.html
http://sayt.ru/ssilka-ssylka.html
http://sayt.ru/ssilka-6.html
http://sayt.ru/ssilka-7.html").split(/\s+/);

рони 08.07.2015 20:15

Alex1233,
непонимаю что вы хотите

Alex1233 08.07.2015 22:33

Цитата:

Сообщение от рони (Сообщение 378268)
Alex1233,
непонимаю что вы хотите

Смотрите. В БД сайта хранятся некие данные (список ссылок - каждая с новой строки (по крайней мере в таком виде они туда записываются и выводятся на сайте)). С помощью PHP и вот этого кода [xfvalue_allLinks] я их достаю из БД и вывожу на генерируемой движком html странице.

То решение, которое Вы мне подсказали прекрасно работает в случае если сначала вызвать/вывести данный список ссылок в специальном диве на странице, т.е. так:

<div id="ssilki" style="display: none;">[xfvalue_allLinks]</div>


var arr =  $.trim($("#ssilki").text()).split(/\s+/);


НО не работает если убрать лишнее звено (div с ссылками), и попробовать передать в JS скрипт список ссылок сразу, вот так:

var arr =  $.trim("[xfvalue_allLinks]").split(/\s+/);


в таком случае JS скрипт не работает, а в исходном коде страницы наблюдается вот такая картина:

var arr =  $.trim("http://sayt.ru/ssilka-1.html
http://sayt.ru/ssilka-2.html
http://sayt.ru/ssilka-3.html
http://sayt.ru/ssilka-sovsem-drugaya.html
http://sayt.ru/ssilka-ssylka.html
http://sayt.ru/ssilka-6.html
http://sayt.ru/ssilka-7.html").split(/\s+/);


-------------------------------------------------
Вот я и спрашиваю как это вылечить? )

рони 08.07.2015 22:39

Alex1233,
вам нужен специалист по php, который подскажет как ваши данные превратить в массив, jquery тут пятое колесо.

Alex1233 08.07.2015 22:46

Цитата:

Сообщение от рони (Сообщение 378290)
Alex1233,
вам нужен специалист по php, который подскажет как ваши данные превратить в массив, jquery тут пятое колесо.

Там все сложно (не в плане реализации), и придется для этого править работу всего движка с этой опцией (а этого как раз не нужно - в других случаях как раз массивом эти данные выводить и не нужно).

Чтож, ок - если средства JS этого сделать не позволяют, придется использовать "пятое колесо" в виде скрытого дива.

Спасибо большое! :)

kostyanet 09.07.2015 05:47

Вместо

Цитата:

Сообщение от Alex1233
var arr = $.trim("[xfvalue_allLinks]").split(/\s+/);

надо

var arr = echo json_decode($xfvalue_allLinks);


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