Reputation: 818
I want to shorten this code, so I want to make 3 or 4 lines,
but if I try to make 3 lines, than it works not.
$('#uebersicht').append('<ul data-role="listview" data-split-icon="gear" data-split-theme="d" data-inset="true" class="ui-listview ui-listview-inset ui-corner-all ui-shadow"><li data-corners="false" data-shadow="false" data-iconshadow="true" data-wrapperels="div" data-icon="false" data-iconpos="right" data-theme="c" class="ui-btn ui-btn-icon-right ui-li ui-li-has-alt ui-li-has-thumb ui-first-child ui-last-child ui-btn-up-c"><div class="ui-btn-inner ui-li ui-li-has-alt"><div class="ui-btn-text"><a href="#" class="ui-link-inherit"><img class="ui-li-thumb" src='+icerik.Resim+'><h2 class="ui-li-heading">'+moschee+'</h2><p class="ui-li-desc">'+results[0].formatted_address+'</p><p class="ui-li-desc">'+hesapla(meineLongitude,meineLatitude,icerik.Position.Longitude,icerik.Position.Latitude)+'</p></a></div></div><a href="#purchase" data-rel="popup" data-position-to="window" data-transition="pop" title="Purchase album" class="ui-li-link-alt ui-btn ui-btn-up-c ui-btn-icon-notext" data-corners="false" data-shadow="false" data-iconshadow="true" data-wrapperels="span" data-icon="false" data-iconpos="notext" data-theme="c" aria-haspopup="true" aria-owns="#purchase"><span class="ui-btn-inner"><span class="ui-btn-text"></span><span data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-icon="gear" data-iconpos="notext" data-theme="d" title="" class="ui-btn ui-btn-up-d ui-shadow ui-btn-corner-all ui-btn-icon-notext"><span class="ui-btn-inner"><span class="ui-btn-text"></span><span class="ui-icon ui-icon-gear ui-icon-shadow"> </span></span></span></span></a></li></ul>');
Upvotes: 0
Views: 249
Reputation: 7250
Probably the cleanest solution would be to make a jquery container, add all elements via append/appendTo and insert the whole object into the dom in the end to avoid too many dom manipulations/redrawings.
But with your html string this could result in quite a long script...
var $list = $('<ul>');
$list.data({
'role': 'listview',
'split-icon': 'gear',
// etc...
}).addClass('ui-listview ui-listview-inset ui-corner-all ui-shadow');
$li = $('<li>');
// take the base object and clone it if used multiple times
$li.clone().data({
// fill up data, add classes etc.
}).addClass('classes').appendTo($list);
// and so on with each element, use all the beautiful jquery functions available
// there's no dom manipulation to this point, performance still fine
// now in the end, insert the object into the dom:
$list.appendTo('#uebersicht');
Maybe better way for you:
var html = '';
html += '<ul data-role="listview" data-split-icon="gear" data-split-theme="d" data-inset="true" class="ui-listview ui-listview-inset ui-corner-all ui-shadow">';
html += '<li data-corners="false" data-shadow="false" data-iconshadow="true" data-wrapperels="div" data-icon="false" data-iconpos="right" data-theme="c" class="ui-btn ui-btn-icon-right ui-li ui-li-has-alt ui-li-has-thumb ui-first-child ui-last-child ui-btn-up-c">';
html += '<div class="ui-btn-inner ui-li ui-li-has-alt">';
// etc. just make a line for each tag or split it if too long
$('#uebersicht').append(html);
Upvotes: 0
Reputation: 15397
Split it wherever you want. Just end the string anywhere, add a plus sign, line feed, and start the string again. e.g.
$('#uebersicht').append(
'<ul data-role="listview" data-split-icon="gear" ' +
'data-split-theme="d" data-inset="true" ' +
'class="ui-listview ui-listview-inset ui-corner-all ui-shadow">' +
'<li data-corners="false" data-shadow="false" data-iconshadow="true"' +
'data-wrapperels="div" data-icon="false" data-iconpos="right"' +
'data-theme="c" class="ui-btn ui-btn-icon-right ui-li ' +
'ui-li-has-alt ui-li-has-thumb ui-first-child ui-last-child ' +
'ui-btn-up-c">' +
'<div class="ui-btn-inner ui-li ui-li-has-alt">' +
'<div class="ui-btn-text">' +
'<a href="#" class="ui-link-inherit">' +
'<img class="ui-li-thumb" src='+icerik.Resim+'>' +
'<h2 class="ui-li-heading">'+moschee+'</h2>' +
'<p class="ui-li-desc">' +
results[0].formatted_address+
'</p> ' +
'<p class="uii-desc">' +
hesapla(meineLongitude, eineLatitude, icerik.Position.Longitude,
icerik.Position.Latitude) +
'</p></a></div></div>' +
'<a href="#purchase" data-rel="popup" data-position-to="window" ' +
'data-transition="pop" title="Purchase album" ' +
'class="ui-li-link-alt ui-btn ui-btn-up-c ui-btn-icon-notext"' +
'data-corners="false" data-shadow="false" data-iconshadow="true" ' +
'data-wrapperels="span" data-icon="false" data-iconpos="notext" ' +
'data-theme="c" aria-haspopup="true" aria-owns="#purchase"> ' +
'<span class="ui-btn-inner">' +
'<span class="ui-btn-text"></span>' +
'<span data-corners="true" data-shadow="true" data-iconshadow="true" ' +
'data-wrapperels="span" data-icon="gear" data-iconpos="notext" ' +
'data-theme="d" title="" class="ui-btn ui-btn-up-d ui-shadow ' +
'ui-btn-corner-all ui-btn-icon-notext">' +
'<span class="ui-btn-inner">' +
'<span class="ui-btn-text"></span>' +
'<span class="ui-icon ui-icon-gear ui-icon-shadow"> ' +
'</span></span></span></span></a></li></ul>'
);
I could've done this cleaner, with better indenting, but you should get the idea. From what I understand, this is better than calling append
on each line - each append takes a relatively large amount of time to do.
Upvotes: 0
Reputation: 6500
When you need to append multiple HTML element the best way to take it ordered and clean is to split up the .append()
in this way:
$('#myID').append('<p>lorem ipsum</p>')
.append('<p>dolor sit amet...</p>')
.append('etc...');
but is not very good append too many elements...
Upvotes: 0
Reputation: 50603
Escape your javascript newlines with \
character, like this:
$('#uebersicht').append('<ul data-role="lisview" data-split-icon="gear"\
data-split-theme="d" data-inset="true" class="ui-listview \
ui-listview-inset ui-corner-all ui-shadow">');
Above it's a shortened version of your long string, but you get the idea, use \
to break javascript new lines.
Upvotes: 1