Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Метод "split" (https://javascript.ru/forum/misc/39211-metod-split.html)

maksim_bezgodov 20.06.2013 16:45

Метод "split"
 
И снова здравствуйте!

<script type="text/javascript">
var brief = "Пётр Петров<br>Иван Иванов<br>Максим Максимов";
var lines = brief.split("<br>");
if (lines) {
 for (var i=[0], c=lines.length; i<c; i++) {
 document.write("<a href=" + "/search/?q=");
 document.write(lines[i]);
 document.write("&m=publ");
 document.write(">");
 document.write(lines[i]);
 document.write("</a>");
 document.write("<br>");
 }
 }
 </script>


Мне нужно, чтобы переходило в поиск, но ссылка получается не та, которую я хочу /search/?q=Пётр , а мне нужно чтобы было /search/?q=Пётр Петров
Т.е. выводится только первое слово, а мне нужно все два слова, чтобы были в ссылке.

danik.js 20.06.2013 17:46

В кавычки обернуть нужно ж. И document.write не так работает, как ты себе это представляешь. Нужно не клочками выводить код, а целиком. Накапливай код в переменной и под конец выведи через один document.write

maksim_bezgodov 20.06.2013 17:54

<script type="text/javascript">
 <!--
var brief = "$BRIEF$";
var lines = brief.split("<br>");
if (lines) {
 for (var i=[0], c=lines.length; i<c; i++) {
     document.write("<a href=" + "/search/?q=" + lines[i] + "&m=publ" + ">");
 document.write(lines[i] + "</a>" + "<br>");
 }
 }
 //-->
 
 </script>



Ну я сделал вот так и всеровно всё также... :(
Может быть я что-то не так сделал?

Solonik 20.06.2013 17:55

Не совсем понял смысл 7 раз писать document.write не проще ли склеить строку через +

попробуй стереть свой цикл for и записать вот так
for (var i=0; i<lines.length; i++) {
 document.write('<a href="/search/?q=' + lines[i] + '&m=publ">'+lines[i]+'</a><br>');
 }

рони 20.06.2013 17:56

maksim_bezgodov,
перезапишите пропуск на %20 или используйте encodeURI(lines[i])

maksim_bezgodov 20.06.2013 18:04

Solonik,
Браво! Спасибо Огромное! Работает!:D


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