Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не берется this.id (https://javascript.ru/forum/misc/32134-ne-beretsya-id.html)

OklickSpb 04.10.2012 15:44

Не берется this.id
 
код html:
<html>
<head>
	<script type="text/javascript" src="jquery.js"></script>
	<script type="text/javascript" src="uploadimage.js"></script>
	<script>
function test(name) {
    $("input[name="+name+"]").upload({
    name: 'file',
    method: 'post',
    action: './ajaximage.php',
    enctype: 'multipart/form-data',
    params: {
    },
    autoSubmit: true,
    onSubmit: function() {
    },
    onSelect: function() {
    },
    onComplete: function(data) {
    }
  });
}
	</script>
</head>
<body>
<input type="file" name="upload" id="upload" onchange='test("upload")'>
<div id="1234"></div>
</body>

</html>


Код javascript:
(function($){
	$.fn.upload = function(options) {
		options = $.extend({
			name: 'file',
			enctype: 'multipart/form-data',
			action: '',
			autoSubmit: true,
			onSubmit: function() {},
			onComplete: function() {},
			params: {}
		}, options);
//Если делаем так, то все работает:
$("#1234").append(this);
//а если так, то нет:
alert(this.id)
	}
});


В чем проблемма, почему так:
alert(this.id)

пишет, что не определено. Однако если так:
$("#1234").append(this);
, то лемент перебрасывается в нужный Div?
Как получить Id от this?

Skipp 04.10.2012 15:54

А зачем вам id?
$(this).attr("id")

OklickSpb 04.10.2012 16:04

Спасибо, в дальнейшем нужно Div создать с 'div_'+id

Skipp 04.10.2012 16:05

а зачем?) Всё по сути и без этого можно связать:)

Nubi 04.10.2012 16:12

this внутри определения метода (upload в данном случае) будет указывать на объект jQuery.
Поэтому можно так: this[0].id

Hoshinokoe 04.10.2012 22:41

Цитата:

Сообщение от Nubi (Сообщение 208161)
this внутри определения метода (upload в данном случае) будет указывать на объект jQuery.
Поэтому можно так: this[0].id

Чтобы совсем по jquery, то this.get(0).id

Skipp 05.10.2012 14:41

Или this.eq(0).id


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