у вас есть два варианта:
предварительно загрузите все RSS-каналы (я предполагаю, что ваши <ul>
на странице примера являются HTML-выводом ваших RSS-каналов?), Скройте их все при загрузке документа, а затем откройте их по выбору
используйте AJAX для динамического получения информации о выбранном канале при изменении поля выбора.
Вот краткий пример javascript и jQuery-версии первого:
HTML:
<select id="showRss">
<option name="feed1">Feed 1</option>
<option name="feed2">Feed 2</option>
</select>
<div id="rssContainer">
<ul id="feed1">
<li>feed item 1</li>
<li>...</li>
</ul>
<ul id="feed2">
<li>feed item 2</li>
<li>...</li>
</ul>
<!-- etc... -->
</div>
JavaScript:
var rss = document.getElementById('rssContainer'); // main container
var nodes = rss.getElementsByTagName('ul'); // collection of ul nodes
var select = document.getElementById('showRss'); // your select box
function hideAll() { // hide all ul's
for (i = 0; i < nodes.length; ++i) {
nodes[i].style.display = 'none';
}
}
select.onchange = function() { // use the 'name' of each
hideAll(); // option as the id of the ul
var e = this[this.selectedIndex].getAttribute('name');
var show = document.getElementById(e); // to show when selected
show.style.display = 'block';
}
hideAll();
JQuery:
$('#showRss').change(function() {
$('#rssContainer ul').hide('slow'); // added a bit of animation
var e = '#' + $(':selected', $(this)).attr('name');
$(e).show('slow'); // while we change the feed
});
$('#rssContainer ul').hide();
для варианта 2 ваша функция onchange
будет обрабатывать загрузку AJAX. Если вы не знакомы с AJAX и имеете несколько каналов, вариант 1, вероятно, самый простой. (опять же, я предполагаю, что вы уже проанализировали свой RSS как HTML, так как это совсем другая тема).