из двух массивов 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, время: 08:06. |