Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не могу получить this.img('src'); (https://javascript.ru/forum/events/34431-ne-mogu-poluchit-img-%27src%27-%3B.html)

w46823 04.01.2013 20:17

Не могу получить this.img('src');
 
Здраствуйте! Помогите решить следующую проблему: есть некий элемент HTML, содержащий в себе изображение. При клике на этот элемент запускается функция, аргументы которой записываются в обьект, а изображние должно копироваться в соседний div.
<ul class="zipper">
<li>
	<img src="img.png" />
	<p>Описание изображения</p>
	<a onclick="noteElem(1,2,myObj)">клонировать изображение</a>
</li>
<li>
	<div class="imgMustBeHere"></div>
</li>
</ul>

var myObj = {first:0,second:0};
function noteElem(first,second,elemObj){
	var i = 0;
	for(var key in elemObj){
		elemObj[key] = arguments[i];
		return elemObj[key];
		i++;
	}
	//var img = $(this).find('img').attr('src').substr(0);
	var classobj = document.getElementsByClassName('zipper');
	if(!classobj) return null;
	alert(classobj);
}

Deff 04.01.2013 20:53

w46823,
Приведите необходимый для скрипта HTML

w46823 05.01.2013 00:03

Выше привел. Вот еще раз: <img src="img.png" /> при клике на <a onclick="noteElem(1,2,myObj)">клонироват ь изображение</a> должен скопироваться в <div class="imgMustBeHere"></div>
<ul class="zipper">
<li>
	<img src="img.png" />
	<p>Описание изображения</p>
	<a onclick="noteElem(1,2,myObj)">клонировать изображение</a>
</li>
<li>
	<div class="imgMustBeHere"></div>
</li>
</ul>

moron 05.01.2013 16:17

var img = $(this).find('img').attr('src').substr(0);

this указывает на элемент, на котором совершилось событие, т.е <a>. find() осуществляет поиск по потомкам. Т.е мы ищем img в a. Но его же нет...
А вобще я не знаю jq...
--добавлено--:
да и вобще код странный: зачем тут функция noteElem, которая изменяет объект myObj{first:0,second:0} в myObj{first:1,second:2}?
Вы осознаете что пишите?

w46823 05.01.2013 17:10

moron, вы немного невнимательны))
>>При клике на этот элемент запускается функция, аргументы которой записываются в обьект, а изображние должно копироваться в соседний div
Осознаю. На комментарий не обращайте внимания, я код скопировал целиком (комментарий только для себя).
Допустим, у меня есть
<ul>
<li>
<a onclick="noteElem(1,2,myObj)"><img src="img.png"><p>Отсюда</p></a>
</li>
<li>
<div class="here"><p>Сюда<p></div>
</li>
</ul>

Насколько я понимаю, функция посредством this должна ссылаться на <a>..</a> и в <a>..</a> искать <img />?

Deff 05.01.2013 17:36

w46823,
На jQuery - пойдёт ?

Deff 05.01.2013 17:40

Цитата:

Сообщение от w46823
Насколько я понимаю, функция посредством this должна ссылаться на <a>..</a> и в <a>..</a> искать <img />?

Ищем от this общего родителя (ul class="zipper);
Затем считаем от UL тег до li( котороe c div);Затем childNodes[1].appendChild

w46823 05.01.2013 19:07

Deff
Да уже как-нибудь пойдёт. Я не очень хорошо знаком с синтаксисом языка, поэтому не знаю, как именно получить текущий элемент.
var img = document.getElementsByClass('zipper');
img = this.img.childNodes[1];

Deff 05.01.2013 19:49

Цитата:

Сообщение от w46823
Да уже как-нибудь пойдёт. Я не очень хорошо знаком с синтаксисом языка, поэтому не знаю, как именно получить текущий элемент.

http://javascript.ru/tutorial/dom/search
<script type="text/javascript">
function noteElem(a,b,ths) {
  var ThisTxt = ths.innerHTML;
  alert(ThisTxt);

  alert('<UL> =\n'+ths.parentNode.parentNode.innerHTML);

}
</script>
<body>


<ul class="zipper">
<li>
	<img src="img.png" />
	<p>Описание изображения</p>
	<a onclick="noteElem(1,2,this)">клонировать изображение(Клик)</a>
</li>
<li>
	<div class="imgMustBeHere"></div>
</li>
</ul>

</body>

w46823 05.01.2013 20:30

Спасибо огромное!


Часовой пояс GMT +3, время: 20:11.