Запись в неуникальный div с помощью Javascript - PullRequest
5 голосов
/ 05 марта 2010

Я создаю многоканальную программу чтения RSS для школы.

aList - это div, который охватывает каждый отдельный канал (количество каналов будет колебаться).

theTitle - это div, который будет заполнен атрибутом текущего канала. Кроме того, при нажатии он загружает список атрибутов из текущего канала в theContent.

Мне интересно, как я могу динамически загружать атрибуты в theContent при щелчке по названию, так как theContent и theTitle будут неуникальными div (я не могу дать им идентификаторы).

Заранее спасибо за помощь,

-Эндрю

Ответы [ 6 ]

1 голос
/ 05 марта 2010

Используйте хорошую библиотеку Javascript, такую ​​как Prototype или jQuery . Кажется мелким сейчас, но эти рамки сэкономят вам тонн времени в долгосрочной перспективе.

В обеих платформах вы можете выбрать этот div с помощью:

$('div.theTitle')

С помощью jQuery вы можете сделать:

$('div.theTitle').click( function() {
    var title = $(this).text();
    var contentDiv = $(this).siblings('div.theContent');
    // Do something with contentDiv and the title
} );

Это заставит каждый элемент div theTitle иметь событие onClick, которое что-то делает со связанным с ним элементом theContent.

1 голос
/ 05 марта 2010
<div class="aList">
<div class="theTitle" onclick="fillContentBox(this)"></div>
<div class="theContent"></div>
</div>

А в вашем сценарии ...

function fillContentBox(div) {
  var theContentDiv = div.parentNode.getElementsByTagName("div")[1];
  // statements that do things with theContentDiv
}
1 голос
/ 05 марта 2010

используя jquery, вы можете использовать код, подобный следующему:

 $(".theTitle").bind("click", function(){
    $el = $(this);
           $el.parent().$(".theContent").load('ajax/content.php?news=' . $el.text());
 });

это сделает все ваши ссылки кликабельными , при нажатии, обновить их соответствующие div-ы контента со значением ajax / content.php? News = theTitle-value

1 голос
/ 05 марта 2010

Вы должны посмотреть на jQuery селекторы для этого и других манипуляций DOM.Что-то вроде

$("div.theContent").attr("name", "value");
1 голос
/ 05 марта 2010

document.getElementsByClassName ( 'ALIST'). GetElementsByTagName ( 'DIV')

0 голосов
/ 05 марта 2010

Вы должны быть в состоянии определить, какой элемент вы хотите обновить, если вы не хотите обновлять более одного. Если элементы сгруппированы внутри чего-то другого, что имеет значение «id», вы можете воспользоваться этим.

...