За последние 24 часа нас посетили 17719 программистов и 1723 робота. Сейчас ищут 925 программистов ...

Кнопка выделяющая блок

Тема в разделе "JavaScript и AJAX", создана пользователем VLK, 20 июл 2014.

  1. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Смотрите, есть такой код:
    Код (Text):
    1. <div class="bbCodeBlock">
    2.     <div class="codeMessage" >one</div>
    3. </div>
    4.  
    5. <div class="bbCodeBlock">
    6.     <div class="codeMessage" >two</div>
    7. </div>
    8.  
    9. <div class="bbCodeBlock">
    10.     <div class="codeMessage" >three</div>
    11. </div>
    мне надо вставить в каждый bbCodeBlock кнопку, при клике кнопки должен выделяться содержимое codeMessage который принадлежит соответствующему bbCodeBlock, я напаял такой код, но он отказывается работать:
    Код (Text):
    1. function test() {
    2.  
    3.  
    4. var block = document.getElementsByClassName('bbCodeBlock'); // получаем массив всех div класса bbCodeBlock
    5. var select_button = '<input type="button" onclick="this.parentNode.getElementsByClassName(\'codeMessage\')[0].select()" value="Выделить" />'; // кнопка с атрибутами
    6.  
    7. for ( var i = 0; i < block.length; i++ ) { // добавляем во все div класса bbCodeBlock кнопку
    8. block[i].innerHTML = block[i].innerHTML + select_button;
    9. }
    10.  
    11. }
    12.  
    13. window.onload = test;
    пишет:
    в чем косяк?
    PS JS толком не знаю, пишу только на знании C# и PHP, ну и по каким та примерам найденным в интернете.

    Добавлено спустя 13 минут 52 секунды:
    Попробовал убрать скобки от select, ошибку не выдает, но и не выделяет
     
  2. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Проверьте в консоли, какого типа this.parentNode.getElementsByClassName(...)[0]. Скорее всего, это какой-нибудь скаляр (возможно undefined или NaN), возможно - пустая коллекция, короче, не то, что нужно. Если это так - смотрите предыдущий уровень, что там выводится. Так можно подниматься до того уровня, который первый начинает возвращать не то. И разбираться там уже.
     
  3. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Может проблема в select? я сделал просто блок div с текстом, и на нем поставил
    Код (Text):
    1. onclick="this.select()"
    та же самая ошибка.

    хотя если сделать поле input type="text" и к нему прикрутить onclick все работает.
     
  4. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Значит, у дива и нет функции select().
     
  5. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    как бы это узнать поточнее
     
  6. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
  7. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Спасибо, getSelection помогло из данной статьи.