из двух массивов jquery получить доступ к элементам и создать третий?
Здорова!
Нужно элементы из двух блоков прочитать, получить доступ к значениям и создать третий блок, как мне получить доступ к элементам из блоков? Пытаюсь в цикле обойти не получается получить доступ к атрибутам. Вот код: $(function() { //1 получаем массивы элементов var a=$("#menu a"); var c=$("#content div"); //2. обходим элементы в цикле for(i=0;i<c.length;i++) { //alert(a.attr("href"));//работает, но возвращает постоянно первый элемент //alert(a[i].href);//работает полную ссылку возвращает //alert(c[i].id);//работает возвращает каждый раз разные айди alert(c[i].text);//не работает } }); Как можно получить доступ в цикле к данным javaScript??? Например не могу получить доступ в цикле к тексту что находится между тегов <div></div>, запись c[i].text не работает. |
alert($(c[i]).text()); |
ninja2,
c.eq(i).text() Если пользуете библиотеку то читайте её апи, это не массивы элементов, а jQuery объекты. Перебор их элементов через метод each |
var a=$("#menu a"); a.each(function () { alert($(this).text()); }); |
работает, а от я создал еще один кот, пытаюсь событие input добавить к ссылке и вывожу текстовое поле, но почему то не добавляется событие input к форме и ссылке.
Вот код: <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> #menu a{ margin: 5px; } </style> <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> <script> $(function() { //1 получаем массивы элементов var a=$("#menu a"); var d=new Array(); //2. обходим элементы в цикле for(i=0;i<a.length;i++) { var j=$("<input/>",{ val: $(a[i]).text(), on: { input: function() { $(a[i]).text(this.value); } } }); d[i]=j; } $("#edit").append(d); }); </script> </head> <body> <div id="menu"> <a href="#dfdf">1df</a> <a href="#fgg44">2fsdfsd</a> <a href="#Df324">3dsfdsf</a> <a href="#dfs33">4sdfsdf</a> <a href="#dfs35">5kkk</a> </div> <hr> <div id="edit"></div> </body> </html> в старом коде там идет перебор через map и там так написано: var d = $("<input/>", { val: $(b).text(), on: { input: function() { $(b).text(this.value) } } }); этот работает, а почему мой не работает? |
ninja2, :)
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> #menu a{ margin: 5px; } </style> <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> <script> $(function() { function c() { var a = $("#menu a"), a = $.map(a, function(a) { return a.text }); return a } alert(c().join("\n"));; }); </script> </head> <body> <div id="menu"> <a href="#dfdf">1df</a> <a href="#fgg44">2fsdfsd</a> <a href="#Df324">3dsfdsf</a> <a href="#dfs33">4sdfsdf</a> </div> </body> </html> |
Цитата:
|
ninja2,
почему не работает боолее подробно читать тут http://javascript.ru/basic/closure#p...-ispolzovaniya |
рони,
это не то, нужно событие input добавить к полю input чтобы работало Этот код не работает: var j=$("<input/>",{ val: $(a[i]).text(), on: { input: function() { $(a[i]).text($(d[i]).text);//эта строчка не правильная } } }); Пробовал по разному $(a[i]).text(this.value); так не работает и так тоже нет $(a[i]).text($(j[i]).text()); |
ninja2,
почему не работает и как исправить написал вам выше |
Часовой пояс GMT +3, время: 23:00. |