Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.06.2015, 10:38
Аспирант
Отправить личное сообщение для ninja2 Посмотреть профиль Найти все сообщения от ninja2
 
Регистрация: 07.06.2015
Сообщений: 90

из двух массивов 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 не работает.
Ответить с цитированием
  #2 (permalink)  
Старый 19.06.2015, 11:15
Аспирант
Отправить личное сообщение для Endy Посмотреть профиль Найти все сообщения от Endy
 
Регистрация: 15.05.2015
Сообщений: 41

alert($(c[i]).text());
Ответить с цитированием
  #3 (permalink)  
Старый 19.06.2015, 11:24
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

ninja2,
c.eq(i).text()

Если пользуете библиотеку то читайте её апи, это не массивы элементов, а jQuery объекты. Перебор их элементов через метод each
Ответить с цитированием
  #4 (permalink)  
Старый 19.06.2015, 11:35
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

var a=$("#menu a");
a.each(function () {
  alert($(this).text());
});
Ответить с цитированием
  #5 (permalink)  
Старый 19.06.2015, 12:12
Аспирант
Отправить личное сообщение для ninja2 Посмотреть профиль Найти все сообщения от ninja2
 
Регистрация: 07.06.2015
Сообщений: 90

работает, а от я создал еще один кот, пытаюсь событие 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)
                        }
                      }
                    });

этот работает, а почему мой не работает?
Ответить с цитированием
  #6 (permalink)  
Старый 19.06.2015, 12:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,077

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>
Ответить с цитированием
  #7 (permalink)  
Старый 19.06.2015, 12:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,077

Сообщение от ninja2
а почему мой не работает?
потому что используя for переменная i на момент обработки событий становится 5, а элемента a[5] на который стали завязаны все созданные инпуты не существует.

Последний раз редактировалось рони, 19.06.2015 в 12:23.
Ответить с цитированием
  #8 (permalink)  
Старый 19.06.2015, 12:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,077

ninja2,
почему не работает боолее подробно читать тут http://javascript.ru/basic/closure#p...-ispolzovaniya
Ответить с цитированием
  #9 (permalink)  
Старый 19.06.2015, 12:26
Аспирант
Отправить личное сообщение для ninja2 Посмотреть профиль Найти все сообщения от ninja2
 
Регистрация: 07.06.2015
Сообщений: 90

рони,
это не то, нужно событие 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());
Ответить с цитированием
  #10 (permalink)  
Старый 19.06.2015, 12:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,077

ninja2,
почему не работает и как исправить написал вам выше
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jquery получить родителя и обратится к элементу внутри по class _Eldar_ Общие вопросы Javascript 6 05.04.2015 19:32
Получить функцию JavaScript (PHP, AJAX, jQuery) Sinot jQuery 3 04.02.2013 13:32
как получить доступ к динамически созданным html элементам? korney Элементы интерфейса 8 21.01.2012 22:12
Как в jQuery получить доступ к фрейму или самому верхнему окну? Neokortex jQuery 7 20.12.2010 10:38
jquery - Как получить полный путь? kirill.adw jQuery 5 20.11.2009 17:40