JQuery append using multiline


0

Я работаю над проектом, который динамически создает файл javascript с использованием ASP.NET, который вызывается с другого сайта.

Это JQuery файл JavaScript добавляет DIV и заполняет его с довольно большим HTML сегментом, и для того, чтобы сделать это мне нужно, чтобы включить сегмент в строку следующим образом:

$(document).ready(function(){ 
var html = "Giving this magazine such a lofty epithet may seem a bit presumptuous, but for a non scientifically trained outsider this magazine offers a fresh and challenging look at the fast paced world of science that doesn't shy away from humor and the use of terms and ideas that may require its readers to go online and define a term. And in some cases it may inspire the reader to pick up a book on science by such greats as Hawking and Greene in order to better grasp some of the concepts dealing with time, space and atoms. This magazine isn't dumbed down. It includes well placed and efficient illustrations to help explain some of the more abstract points. It is not designed in the way popular magazinea are, in so much as they only touch upon a topic in the simplest manner and then move on before the audience is lost. Yet this magazine keeps the attention of the reader by combining explanatory notes that help people with no background knowledge have some grasp of the topic and by using humor and well written articles to clearly make their points. <br />For a magazine with a serious and well researched list of topics having small cartoons the likes of the New Yorker shows how comfortable this magazine is with itself. From the moment I picked up this magazine for the first time I felt like every word I read mattered and was worth my time to read. (Not true of many other magazines) American Scientist may not have the audience of Discover or National Geographic, nor is it as accessible as said titles, but for those with a true interest in science willing to challenge themselves and commit to real learning this magazine may be a perfect fit. At $4.95 it is certainly worth it to pick a copy on the news stand and try it out." 

$("#divname").append(html); 
}); 

Как вы можете видеть сегмент будет довольно большим, и я не могу понять, насколько он динамичен из моей базы данных в зависимости от идентификатора reviewID, который определяется пользователем в их запросе.

html, который нужно вставить в div, является списком отзывов и создается с использованием asp.net MVC ретранслятором, который перебирает список. (если это помогает дать вам представление о том, что я делаю).

Есть ли способ превратить этот большой сегмент в одну строку, которая может быть вставлена ​​в скрипт добавления?

Спасибо

  0

Я думаю, что подход var html = "long string here ..." должен работать, не так ли? 22 фев. 092009-02-22 07:49:59

  0

Нет, если строка генерируется как html и она не просто образует одну длинную строку, она создает по какой-то причине новые строки. 22 фев. 092009-02-22 08:50:10

1

Междоменное JQuery JSON
http://docs.jquery.com/Release:jQuery_1.2/Ajax#Cross-Domain_getJSON_.28using_JSONP.29

  0

извините, это не самый свежий URL-адрес ... http://docs.jquery.com/Ajax/jQuery.getJSON 22 фев. 092009-02-22 09:00:04

  0

Thank you !, Я закончил создание mvc-страницы просмотра, которая сгенерировала простой JSON, а затем использовала script, чтобы вызвать JSON, который затем был добавлен в div. Я решил задачу multline, заменив все «\ n» пробелом, обрезая код и удалив двойные пробелы. Благодарю Тебя так много jayrdub. 23 фев. 092009-02-23 08:13:41


0

Поправьте меня, если я ошибаюсь, но я думаю, что все между начальной и конечной кавычки не будут считаться частью этой строки, независимо от того, сколько строк имеет. Если ваша строка не имеет кавычек сама по себе, в этом случае лучше будет сделать эквивалент функции php's addslashes() в ASP на вашей строке, которая должна добавить \ перед всеми отметками " в строке.

Другой идеей может быть использование Json для кодирования/декодирования строки.


1

Некоторые идеи:

  • Вы можете заменить новые строки с пробелами и создать огромную очередь. Там не должно быть проблем.
  • Использовать конкатенацию строк. Разделить строки и строки и сделать:

    вар HTML = line1 + line2 + ... белье;

  • сделать вызов Ajax для заполнения DIV:.

    $ ("# divname") нагрузки (service_url);

Вам необходимо создать службу, которая вернет строку.

На мой взгляд, третий вариант лучше, чем другие.

  0

Я согласен, третий вариант будет очень хорошим, но, похоже, он не работает с перекрестным доменом. Можете ли вы заставить его работать с перекрестным доменом? 22 фев. 092009-02-22 08:14:47

  0

Вы можете использовать jsonp как dataType в вызове $ .ajax для загрузки данных из внешнего домена. Это было бы не так просто, как загрузка. Почему вы хотите это сделать? Почему бы не создать прокси-сервер в том же домене, что и веб-страница? 22 фев. 092009-02-22 09:02:06


0

Я не вижу, что не так, просто создавая одну длинную однострочную строку большой длины и добавляя ее так же, как вы. период. сделанный. Fancier не собирается вам ничего.

  0

Я бы не прочь сделать очень длинную строку, но проблема в том, что страница генерируется динамически, и, как представляется, код форматирует html таким образом, что он создает несколько новых строк. 22 фев. 092009-02-22 08:52:02


0

Скрыть это еще где на странице и заполнить DIV с ним, когда вам это нужно?