Click here to Skip to main content
16,020,080 members
Please Sign up or sign in to vote.
2.33/5 (3 votes)
See more:
I have a function in javascript which returns an HTML some thing like this:

<div class='accordionNew'><div class='topBox'><div class='leftCurve'> <div class='rightCurve'><div class='midBg'><div class='boxTitle' id='widgetTitle'>Orders</div> <div class='clear'></div></div></div></div></div><div class='clear'></div><div id='divAttContent' class='contentBox border1 requiredFontSize requiredFontColor'></div><div class='pagination fivePxPaddingTop lfloat'> <div class='paginationDisplayNum'> <div class='lfloat threePxMarginTop fivePxMarginRight'>Showing<strong>1 - 5</strong>of <strong>25</strong></div><a href='#' class='first-in tabs' title='First'></a><a href='#' class='prev-in tabs' title='Previous'></a><a href='#' class='next tabs' title='Next'></a><a href='#' class='last tabs'title='Last'></a></div> <div class='lfloat fifteenPxMarginRight onePxMarginTop'><select><option selected='selected'>5</option><option>10</option><option>15</option><option>20</option><option>25</option></select><div class='topPadd lfloat fontGrayL fivePxMarginTop'>&nbsp;Per page</div></div><div class='clear'></div></div><div class='clear'></div></div></div>


This is the function which returns the above Html :

XML
function getWidgetHtml(result) {
var htmlObject = '';
    var htmlObject = "<div class='accordionNew'>";
    htmlObject = htmlObject + "<div class='topBox'>";
    htmlObject = htmlObject + "<div class='leftCurve'>";
    htmlObject = htmlObject + " <div class='rightCurve'>";
    htmlObject = htmlObject + "<div class='midBg'>";
    htmlObject = htmlObject + "<div class='boxTitle' id='widgetTitle'>Orders";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + " <div class='clear'>";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + "<div class='clear'>";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + "<div id='divAttContent' class='contentBox border1 requiredFontSize requiredFontColor'>";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + "<div class='pagination fivePxPaddingTop lfloat'>";
    htmlObject = htmlObject + " <div class='paginationDisplayNum'>";
    htmlObject = htmlObject + " <div class='lfloat threePxMarginTop fivePxMarginRight'>";
    htmlObject = htmlObject + "Showing<strong>1 - 5</strong>of <strong>25</strong></div>";
    htmlObject = htmlObject + "<a href='#' class='first-in tabs' title='First'></a><a href='#' class='prev-in tabs'";
    htmlObject = htmlObject + " title='Previous'></a><a href='#' class='next tabs' title='Next'></a><a href='#' class='last tabs'";
    htmlObject = htmlObject + "title='Last'></a>";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + " <div class='lfloat fifteenPxMarginRight onePxMarginTop'>";
    htmlObject = htmlObject + "<select>";
    htmlObject = htmlObject + "<option selected='selected'>5</option>";
    htmlObject = htmlObject + "<option>10</option>";
    htmlObject = htmlObject + "<option>15</option>";
    htmlObject = htmlObject + "<option>20</option>";
    htmlObject = htmlObject + "<option>25</option>";
    htmlObject = htmlObject + "</select>";
    htmlObject = htmlObject + "<div class='topPadd lfloat fontGrayL fivePxMarginTop'>";
    htmlObject = htmlObject + "&nbsp;Per page</div>";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + "<div class='clear'>";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + "<div class='clear'>";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + "</div>";
    return htmlObject;
}


And i append it this way,
var htmlObject = getWidgetHtml();
$(htmlObject).appendTo($('#widgetDiv1'));
//where widgetDiv1 is the id of the div on my aspx page. If i place the same returned HTML directly on the aspx page it shows properly but the appendTo does not show anything. I also tested by appending a simple string and it is able to do that. What may be the problem?
Posted
Updated 21-Jun-11 21:16pm
v2
Comments
Manfred Rudolf Bihy 22-Jun-11 8:12am    
Got it fixed now! I had to delete my first solution as it was not correct! This one does work though :).
Cheers!

1 solution

Small error but...
C#
function getWidgetHtml(result) {
    var htmlObject = '';
    var htmlObject = "<div class='accordionNew'>";
    htmlObject = htmlObject + "<div class='topBox'>";
    htmlObject = htmlObject + "<div class='leftCurve'>";
    htmlObject = htmlObject + " <div class='rightCurve'>";
    htmlObject = htmlObject + "<div class='midBg'>";
    htmlObject = htmlObject + "<div class='boxTitle' id='widgetTitle'>Orders";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + " <div class='clear'>";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + "<div class='clear'>";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + "<div id='divAttContent' class='contentBox border1 requiredFontSize requiredFontColor'>";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + "<div class='pagination fivePxPaddingTop lfloat'>";
    htmlObject = htmlObject + " <div class='paginationDisplayNum'>";
    htmlObject = htmlObject + " <div class='lfloat threePxMarginTop fivePxMarginRight'>";
    htmlObject = htmlObject + "Showing<strong>1 - 5</strong>of <strong>25</strong></div>";
    htmlObject = htmlObject + "<a href='#' class='first-in tabs' title='First'></a><a href='#' class='prev-in tabs'";
    htmlObject = htmlObject + " title='Previous'></a><a href='#' class='next tabs' title='Next'></a><a href='#' class='last tabs'";
    htmlObject = htmlObject + "title='Last'></a>";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + " <div class='lfloat fifteenPxMarginRight onePxMarginTop'>";
    htmlObject = htmlObject + "<select>";
    htmlObject = htmlObject + "<option selected='selected'>5</option>";
    htmlObject = htmlObject + "<option>10</option>";
    htmlObject = htmlObject + "<option>15</option>";
    htmlObject = htmlObject + "<option>20</option>";
    htmlObject = htmlObject + "<option>25</option>";
    htmlObject = htmlObject + "</select>";
    htmlObject = htmlObject + "<div class='topPadd lfloat fontGrayL fivePxMarginTop'>";
    htmlObject = htmlObject + " Per page</div>";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + "<div class='clear'>";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + "<div class='clear'>";
    htmlObject = htmlObject + "</div>";
    htmlObject = htmlObject + "</div>";
    //The following closing tag was one to many
    //htmlObject = htmlObject + "</div>"; 
    return htmlObject;
}

I used your function in my own test harness and it worked in FF but not in IE. In IE I got it to work after I found out that the last closing div did not have a corresponding opening div. This gets IE confused as the jQuery implementation uses innerHTML on IE to do the HTML parsing when string in $(string) is HTML.
:)
Best Regards,
--MRB
 
Share this answer
 
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900