Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Текстовая ссылка в JavaScriptе (https://javascript.ru/forum/misc/70400-tekstovaya-ssylka-v-javascripte.html)

MC-XOBAHCK 02.09.2017 16:39

Текстовая ссылка в JavaScriptе
 
Здравствуйте!
Подскажите, а можно ли передать ссылку в JavaScript и в jQuery ?

Например, хочу я вывести в результате текст: "Форум, Учебник, Справочник"
При этом я хочу чтобы каждое слово было со своей ссылкой.
Ссылки:
Форум - <a href="forum" target="_blank">Форум</a>
Учебник - <a href="https://learn.javascript.ru" target="_blank">Учебник</a> 
Справочник - <a href="manual" target="_blank">Справочник</a>

Скрипт:
var jsru = "Форум, Учебник, Справочник";

$('#test').text(jsru);

laimas 02.09.2017 16:56

Можно, только нет типа данных "ссылка", это строка. Но что значит передать, откуда? Если речь идет о формировании меню, то это нужно делать на сервере.

MC-XOBAHCK 02.09.2017 17:03

Мне нужно в переменной сделать слова ссылками. Не для меню, а для вывода результата.
Вот переменная:
var jsru = "Форум, Учебник, Справочник";
Как в ней сделать слова форум, учебник и справочник, чтобы они были тремя разными ссылками?

laimas 02.09.2017 17:10

Цитата:

Сообщение от MC-XOBAHCK
var jsru = "Форум, Учебник, Справочник";

И как JS должен определить какой URL каждому? Тогда уж массив или объект:

var jsru = [["Форум", "URL1"],[" Учебник", "URL1"], ["Справочник", "URL3"]];


и обходом в цикле получая данные из него формировать ссылки.

MC-XOBAHCK 02.09.2017 17:23

Сейчас попробую.

laimas 02.09.2017 17:29

Цитата:

Сообщение от MC-XOBAHCK
degtg >= 4 && degtg < 5

И какое это число будет?

MC-XOBAHCK 02.09.2017 17:39

Цитата:

Сообщение от laimas
И какое это число будет?

От четвёрки включительно, до пятёрки: 4; 4.10; 4.62; 4.99....... У меня результат градусы с дробями. Округлено до двух знаков (до сотых).
На пяти добавляется новое значение.
Вот как на виды поставить ссылки у меня собственно вопрос и осложнения.

laimas 02.09.2017 17:54

Ясно, то есть речь не о целых числах.

Просто проставьте в своих условиях сразу и URL для ссылок. Только в данном случае лучше switch использовать.

MC-XOBAHCK 03.09.2017 18:33

Цитата:

Сообщение от laimas
в данном случае лучше switch использовать

laimas, спасибо за намёк. Я с самого начала делал через switch, но делал неправильно. Искал, гуглил, но найти решения нигде не мог. А ваша подсказка дала понять что где то решение есть.
В общем переписал скрипт на switch и вынес все виды в отдельные переменные, НО
осталась проблема - я не смог найти решение как сделать ссылкой.
var a, b;
var for = "Форум",
      ler = "Учебник",
   man = "Справочник",
      prl = ", ";
switch(true) {
	case(a > b)  : res = for; break;
	case(a < b)  : res = for + prl + ler; break;
      case(a == b) : res = for + prl + ler + prl + man;
}
$('#test').text(res);

Подскажите пожалуйста, как сделать чтобы переменные Форум, Учебник, Справочник были ссылками?
Форум - <a href="forum" target="_blank">Форум</a>
Учебник - <a href="https://learn.javascript.ru" target="_blank">Учебник</a>
Справочник - <a href="manual" target="_blank">Справочник</a>

laimas 03.09.2017 19:14

А причем тут "Форум", "Учебник", "Справочник", где код в котором было много условий и как я понял то что в нем определялось и должно стать ссылками? А значит:

var url, txt; //если по умолчанию какой-то определен, значит указать
switch(значение уклона в градусах, а true, это глупость, это зарезервированное слово в языке, использовать как имя переменной его нельзя!) {
    case условие: url = "адрес"; txt = "текст";
                         break;
    ..... и т.д. 
}
$("<a/>", {href: url, text: txt, target: "_blank"}).appendTo(селектор элемента в который нужно добавить ссылку));

MC-XOBAHCK 03.09.2017 19:40

У меня в условиях сравнение, поэтому я взял true, чтобы проверить правда или ложь. Переменной true у меня нет.
Когда ставил в case сравнение - получалась ошибка.

Скажите, в таком варианте true это неправильно?

MC-XOBAHCK 03.09.2017 19:43

Добавлю что сам скрипт работает правильно. Но на счёт применения true я не знаю. Если не стоит его применять, я тогда его лучше уберу.

laimas 03.09.2017 19:48

Цитата:

Сообщение от MC-XOBAHCK
У меня в условиях сравнение, поэтому я взял true, чтобы проверить правда или ложь.

Это ахинея какая то. switch(degtg), причем тут true.

laimas 03.09.2017 19:58

Цитата:

Сообщение от MC-XOBAHCK
Добавлю что сам скрипт работает правильно.

Ни кто и не говорит, что swith не будет работать, так как ему явно указано значением "истина". Но оператор switch принимает и обрабатывает переданную ей переменную. Этот оператор в общем то замена условий if()... else .... Вы же в условиях проверяете значения некой переменной, а не делаете их "действительными" определяя для них true.

MC-XOBAHCK 03.09.2017 20:06

Я понял. Уберу. Но если прописываю switch(degtg)
то у меня не получается правильно задать условие case
Подскажите пожалуйста, как правильно написать case для такого варианта:
case (degtg >= 5 && degtg < 9) : sootpokr = ""; break;

laimas 03.09.2017 20:19

https://developer.mozilla.org/ru/doc...tements/switch

То есть в вашем случае, чтобы проверять "множество", то да - switch(true). Я глянул на первое выражение и ... )

MC-XOBAHCK 03.09.2017 20:28

Для сравнений там указан вариант switch (true)

laimas 03.09.2017 20:34

Цитата:

Сообщение от MC-XOBAHCK
Для сравнений там указан вариант

Да, это для множества, их два способа.

А как связано в коде вот это sootpokr = rulkr + zppr + memkr + zppr + nplkr; с неким url и текстом ссылки?

PS. Что настолько точен расчет крыши, что градусы с сотыми значениями?

MC-XOBAHCK 03.09.2017 20:38

У меня просто пустое место в теге span c id под вывод этого результата:
<h3>Подходящий вид:</h3>
<p><span id="sootpokr"></span></p>

А свича к сожалению нет в учебнике на сайте. Вы нашли быстро, а я через гугл вариант искал несколько дней. А вариант switch (true) нашёл только глубоко в ленте комментариев в учебнике сайта со статьёй switch

Я здесь пропустил и у себя в исходнике затёр по невнимательности, у меня просто ябъявлена переменная
var = sootpokr;

laimas 03.09.2017 20:47

rulkr + zppr + memkr + zppr + nplkr - лучше определять так - [rulkr, memkr, nplkr].join(zppr) и т.п.

Я спрашивал - как связать вопрос формирования ссылки, ее адресом и текстом с кодом определения текста по углу наклона?

MC-XOBAHCK 03.09.2017 21:18

Если Вы о том что я тему завёл не в сторону её названия, то извиняюсь.

Если это наводящий вопрос чтобы помочь, то у я не могу найти инфу как сделать текстовую анкорную ссылку из переменной - чтобы переменная была анкорной ссылкой.
Я хочу результат выводит что то типа тегов. Допустим под уклон подходят и выводятся в spane
Металлочерепица, Фальцевая кровля, Шифер.

Я хочу чтобы они были со своими сылками на страницы сайта
Металлочерепица - вела на страницу: мой-сайт.ру/кровли/металлочерепица
Шифер: мой-сайт.ру/кровли/шифер
и т.д.
Ссылки постоянные. Идеально бы прописать в переменных:
var m4tsa = "Металлочерепица",
    flckr = "Фальцевая кровля",
    shfer = "Шифер";

но я не знаю как.

MC-XOBAHCK 03.09.2017 21:37

laimas, СПАСИБО за join
Я в учебнике прям перед ним остановился, но если бы Вы не подсказали - я бы при изучении скорей всего это мимо пропустил, без применения.

laimas 04.09.2017 02:12

Цитата:

Сообщение от MC-XOBAHCK
Я хочу результат выводит что то типа тегов. Допустим под уклон подходят и выводятся в spane
Металлочерепица, Фальцевая кровля, Шифер.

Можно конечно заморачиваться на клиенте, но это пустое занятие. Если вы создаете веб приложение, то в нем всегда две стороны - первая это сервер, вторая клиент. При этом сервер доступен многим клиентам, а значит он и определяется как источник данных. Любое изменение данных на нем будет отражено у клиентов.

То есть теги определяются и хранятся также на сервере, на клиенте они только отображаются согласно заданному шаблону.

https://msdn.microsoft.com/ru-ru/lib...(v=vs.85).aspx

MC-XOBAHCK 04.09.2017 02:37

Честно - пока это не мой уровень, но я ознакомился - расписано очень даже. Спасибо за наводку - буду обдумывать и создавать архитектуру таблицы БД, а так же изучать в этом направлении.


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