Go4Expert (http://www.go4expert.com/)
-   JavaScript and AJAX (http://www.go4expert.com/forums/javascript/)
-   -   Replacing code onload using Javascript (http://www.go4expert.com/forums/replacing-code-onload-using-javascript-t19763/)

chzdanish 15Oct2009 01:12

Replacing code onload using Javascript
I have a page which uses RSS2JS to display an RSS feed. When the feed contains items, all is well. But when the feed does not contain any items, no content is displayed. It would be preferable to me if RSS2JS would write something like "There are no announcements at this time. Check back later!" rather than leaving a blank spot on the page.

RSS2JS generates code that looks like this when the feed is empty.

<div class="rss-box"><ul class="rss-items"></ul></div>
I thought it might be possible to use Javascript to replace the <ul> tags with something like this after loading:


<div class="rss-box"><ul class="rss-items"><li>There are no announcements at this time.  Check back later!</li></ul></div>

Sadly, I know next to nothing about Javascript. Any suggestions? I'd be happy to credit you in the code, for what that's worth!:nice:

nimesh 15Oct2009 02:23

Re: Replacing code onload using Javascript
Is that the only UL tag in the document?

If yes, then you can use the JS Function getElementsByTagName()

Check the code below, if it meets your requirement.


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <title> new document </title>
  <script type="text/javascript">
                function  checkFeedCount(){
                        var x1=document.getElementsByTagName('ul');
                        var x2=document.getElementsByTagName('li');
                        if (x2.length < 1){
                                x1[0].innerHTML="<li>There are no announcements at this time.  Check back later!</li>";
 <body onLoad="checkFeedCount()">
  <div class="rss-box"><ul class="rss-items"></ul></div>

All times are GMT +5.5. The time now is 15:40.