Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Забрать содержимое тега и сам тег по ID


Автор: mikla 26.7.2009, 15:54
Здравствуйте.

допустим у меня есть список: 

Код

<ul id='ul2'>
    <li id='li3'>
               data1
    </li>
    <li id='li4'>
                 data2
    </li>
    <li id='li5'>
                 data3
    </li>
</ul>


Как мне забрать весь тег целиком с помощью js или jquery? чтобы допустим ф-я getLiById(3) вернула мне :
Код

<li id='li3'>
         data1
</li>

Автор: unicross 26.7.2009, 18:56
mikla, а зачем вам это вообще нужно? Вы итак знаете, что это тег <LI>...

Получить можно через свойство outerHTML, но оно работает только в IE и Opera...
А можно и через одно место  smile , зато должно работать везде... smile  Могу ошибаться... smile 

Вот вам два варианта с помощью jQuery:
Код

<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="jquery.js" type="text/javascript"></script>
<script type="text/javascript">
<!--
function getLiById1(id) {
   if (!id) return 'Не задан параметр';
   var elem = $("#li" + id);
   if (elem.length == 0) return 'Элемент не найден';
   elem.wrap("<div id='elemdiv'></div>");
   var result = $("#elemdiv").html();
   $("#elemdiv").replaceWith(result);
   return result;
}
function getLiById2(id) {
   if (!id) return 'Не задан параметр';
   var elem = $("#li" + id);
   if (elem.length == 0) return 'Элемент не найден';
   return elem.get(0).outerHTML;
}

$(document).ready(function() {
   $("#btn1").click(function() {
      $("#div1").text(getLiById1($("#txt1").val()));
      $("#div2").text(getLiById2($("#txt1").val()));
      //alert(document.getElementById("li3").outerHTML);
   });
});
//-->
</script>
</head>
<body>
<ul id='ul2'>
    <li id='li3'>
               data1
    </li>
    <li id='li4'>
                 data2
    </li>
    <li id='li5'>
                 data3
    </li>
</ul>
Введите индекс: 
<input type="text" id="txt1">
<input type="button" value="Получить значение" id="btn1"><br>
Результат:<br>
Вариант 1:<br>
<div id="div1"></div>
Вариант 2:<br>
<div id="div2"></div>
</body>
</html>

Автор: mikla 29.7.2009, 16:25
unicross,  спасибо smile
мне это нужно было т.к. в <li> могло быть еще куча атрибутов. 
и вообще нужно было для организации перемещения элементов) 
в итоге я разрешил все с помощью clone().

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)