За последние 24 часа нас посетили 20048 программистов и 1079 роботов. Сейчас ищет 761 программист ...

jquery <selece> html() странно работает

Тема в разделе "JavaScript и AJAX", создана пользователем vikrorpert, 12 ноя 2018.

  1. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    Код (Text):
    1. var t = '<select name="list1" multiple size="7" id="asdas"><optgroup label="group1"><option value="1">Option</option><option value="2">Textarea</option></optgroup><optgroup label="group2"><option value="3">Label</option><option value="4">Fieldset</option><option value="5">Legend</option></select>';
    2.  
    3. console.log($(t).find('select').html());
    не работает
    если обернуть в любой тег например div или form то работает
    Код (Text):
    1. var t = '<div><select name="list1" multiple size="7" id="asdas"><optgroup label="group1"><option value="1">Option</option><option value="2">Textarea</option></optgroup><optgroup label="group2"><option value="3">Label</option><option value="4">Fieldset</option><option value="5">Legend</option></select></div>';
    2.  
    3. console.log($(t).find('select').html());
    в чем причина?
     
  2. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Причина в том, что возвращает метод html(). А возвращает он внутренний html элемента. В нативном JS - это свойство innerHTML. Если же вам нужен внешний html элемента, то используйте или же свойство outerHTML, или в jQuery - $(element).prop('outerHTML');
     
    vikrorpert нравится это.