2010-03-05 14 views
5

Estoy construyendo un lector de RSS de alimentación múltiple para la escuela.Escribir en un div no único con Javascript

aList es el div que abarca cada alimentación individual (la cantidad de alimentación fluctuará).

theTitle es el div que se rellenará con el atributo del feed actual. Además, si hace clic, cargará una lista de atributos del feed actual en el Contenido.

Me pregunto cómo puedo cargar dinámicamente los atributos en el contenido cuando se hace clic en el título, ya que el contenido y el título van a ser divs no únicos (no puedo darles identificadores).

Gracias por su ayuda de antemano,

-Andrew

Respuesta

1

document.getElementsByClassName ('aList'). GetElementsByTagName ('div')

+0

honestamente No he escrito un código como este sin utilizar una biblioteca como MooTools en años. Creo que Mozilla admite nativamente getElementsByClassName pero no IE. mira en una implementación personalizada en google. – kwcto

+0

La respuesta aquí es sobre "getElementsByTagName", no nombre de clase. IE lo admite. – Pointy

+0

getElementsByClassName está allí también ...? – rjh

1

usted debe buscar en jQuery selectores para eso y otra DOM Manipulación. Algo así como

$("div.theContent").attr("name", "value"); 
1

mediante el uso de jQuery, se puede usar un código como el siguiente:

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

esto hará que todos sus enlaces se puede hacer clic, una de clic, actualización sus correspondientes divs de contenido con el valor de ajax/content.php? news = theTitle-value

0

Tiene que poder determinar qué elemento desea actualizar si no desea actualizar más de uno. Si los elementos están agrupados dentro de otra cosa que tiene tiene un valor "id", puede aprovechar eso.

1
<div class="aList"> 
<div class="theTitle" onclick="fillContentBox(this)"></div> 
<div class="theContent"></div> 
</div> 

Y en su guión ...

function fillContentBox(div) { 
    var theContentDiv = div.parentNode.getElementsByTagName("div")[1]; 
    // statements that do things with theContentDiv 
} 
1

Utilice una buena biblioteca de Javascript como Prototype o jQuery. Parece insignificante ahora, pero estos marcos le ahorran toneladas de tiempo en el largo plazo.

En ambos marcos, puede seleccionar que div con:

$('div.theTitle') 

con jQuery, que puede hacer:

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

Esto hará que cada elTitulo div tienen un evento de clic que hace algo con su div asociado Content.

+0

Solo un FYI: Puede acortar esto a: '$ (this) .siblings ('. TheContent');' o más corto: '$ (this) .next ('. TheContent');' –

+0

Publicación actualizada, gracias:) – rjh

Cuestiones relacionadas