2013-12-03 3 views
0

Я хочу получить идентификатор элемента, который щелкнут и находится в указанном классе, и хочу напечатать идентификатор.Получить идентификатор элемента с использованием имени класса

Вот мой JS, я действительно новых JS, пожалуйста, помогите

 $('.wrapinner').click(function(e) { 
     $('.wrapinner').css("margin-top","0"); 
     $('.wrapinner').css("opacity","0.4"); 
     $(this).css("margin-top","25px"); 
     $(this).css("opacity","1"); 
     var r= document.getElementById(this).attributes.toString(); 
     document.write(r); 
    }); 

ответ

4

Есть два способа сделать это:

1) Выполненный без объекта JQuery (это быстрее)

$(".wrapinner").click(function(){ 
    //Your Code 
    var id = this.id; 
    document.write(id); 
}); 

ИЛИ

2) Сделано с объекта JQuery:

$(".wrapinner").click(function(){ 
    //Your Code 
    var id = $(this).attr('id'); 
    document.write(id); 
}); 

Примечание после jfriend00 «s комментарий.

Используйте document.write(), если это действительно необходимо и не вредно для вашей страницы. Используйте console.log(). Читать Why is document.write considered a "bad practice"?

+1

Используйте 'console.log()', а не 'document.write()', потому что 'document.write()' очистит весь документ. – jfriend00

+0

ОК, понял. Я обновил. –

0

Вы не передавая идентификатор getElementById, а вы передаете объект это сам. Вы можете получить идентификатор исходного объекта события, используя this.id не по this.

Изменить

var r= document.getElementById(this).attributes.toString(); 

Для

var r= document.getElementById(this.id).attributes.toString(); 
1

Попробуйте так:

$('.wrapinner').click(function(e) {  
    console.log(this.id); 
}); 
+1

Просто 'this.id', будет работать во всех браузерах. – elclanrs

0

Просто напишите

document.write(this.id) 
+0

Я не советую ему использовать 'document.write'. Он уже использует его в своем коде. Пункт моего ответа состоял в том, чтобы упомянуть, что 'this.id' будет делать трюк. – tewathia

3

Вы можете позвонить в родной JavaScript Object непосредственно; this.id.

$('.wrapinner').click(function(e) { 
    $('.wrapinner').css("margin-top","0").css("opacity","0.4"); // chained these two 
    $(this).css("margin-top","25px").css("opacity","1"); // chained these two 
    var r = this.id; // this should already reference the correct element. 
    document.write(r); 
}); 
+0

спасибо, это помогло – CleanX

+0

+1 для цепочки. –

+0

Eeeck. Не используйте 'document.write()', потому что это очистит весь документ. Если это просто для отладки, используйте console.log() – jfriend00

0

Попробуйте это:

$('.wrapinner').click(function(e) { 
     $('.wrapinner').css("margin-top","0"); 
     $('.wrapinner').css("opacity","0.4"); 
     $(this).css("margin-top","25px"); 
     $(this).css("opacity","1"); 
     var id = $(this).attr('id'); 
    }); 
+0

Eeeck. Не используйте 'document.write()', потому что это очистит весь документ. Если это просто для отладки, используйте 'console.log()'. – jfriend00

+0

извините! Я просто следую за хозяином! – HICURIN

0

Попробуйте этот пример:

<table> 
<tbody> 
<tr id="CustomerScreen" class="rows"></tr> 
<tr id="TraderScreen" class="rows"></tr> 
<tr id="DistributorScreen" class="rows"></tr> 
</tbody> 
</table> 
<script> 
$('.rows').each(function() { 
    var ar = this.id; 
    console.log(ar); 
}); 
</script> 
0

Вы можете проверить этот код ..

$('.wrapinner').click(function(e) {  
var getID = $(this).attr('id'); 
alert(getID); 
}); 
0

Я захватывая события нажатия на класса, а затем найти его id и имя класса, используя parent(). демо demo

$(document).ready(function(){ 
    $('.class-first ul li, .class-second ul li, .class-third ul li').on('click',function(){ 
     console.log("child :"+$(this).attr('id') + " Parent:"+$(this).parents().eq(1).attr('class')); 
    }); 
}) 
Смежные вопросы