прототип получает внутренний html нескольких классов

Я новичок в прототипировании и нахожу это намного сложнее, чем jquery. Все, что я хочу сделать, это получить внутренний HTML-код различных классов.

$$('.book').each(function() {
    var msg = this.down(".information"); 
    alert(msg.innerHTML);
    //new Tip(this, msg.innerHTML, {stem: 'topLeft',  hook: { tip: 'topLeft', mouse: true }, offset: { x: 14, y: 14 }});
});

Я пытаюсь создать всплывающие подсказки для нескольких элементов, но даже не получаю оповещения.


person Moak    schedule 03.09.2009    source источник


Ответы (2)


Переменная this не указывает на элемент, который вы перебираете в Prototype, вы должны явно использовать параметр:

$$('.book').each(function(book) {
    var msg = book.down(".information"); 
    alert(msg.innerHTML);
});
person Jonas Høgh    schedule 03.09.2009

Я думаю, что вы, вероятно, можете предотвратить дополнительную работу с домом down() следующим образом:

$$('.book .information').each(function(book) {
  alert(book.innerHTML);
});

помните, что у вас также есть возможность использовать расширенные селекторы CSS2 и CSS3 в прототипе, например:

$$('.book a[rel]').each(function(el) {
  alert(el.rel);
});

см. внизу этой страницы дополнительные примеры http://www.prototypejs.org/api/utility/dollar-dollar

person robjmills    schedule 04.09.2009