2013-08-10 2 views
0

Я пытаюсь получить идентификатор кнопки с помощью jquery, но не могу заставить ее работать. Ниже мой полный код.Не удалось получить идентификатор кнопки с jquery

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript" src="jquery-1.7.2.min.js"></script> 

<script type="text/javascript"> 
    $("button").click(function() { 
     alert(this.id); 
    }); 
</script> 
</head> 

<body> 
    <input id="some_id1" type="button" value="0"/> 
</body> 
</html> 

EDIT Ниже обновленный код, но он по-прежнему не работает.

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript" src="./gridster.js_files/jquery-1.7.2.min.js"></script> 
<script type="text/javascript"> 
$("input").click(function(){ 
    alert($(this).attr("id")); 
}); 
</script> 
</head> 

<body> 
    <input id="some_id1" type="button" value="0"/> 
</body> 
</html> 

EDIT 2 Это работает

<script type="text/javascript"> 
$(function(){ 
$("input").click(function(){ 
    alert($(this).attr("id")); 
}); 
}); 
</script> 
+0

http://www.w3schools.com/cssref/css_selectors.asp – leopic

+2

На странице нет '$ (" button ")'. –

+0

Поместите тег 'script' перед закрытием' 'или используйте' $ (document) .ready (function() {...}); ' –

ответ

4

Проблема заключается в том, что вы устанавливаете ваш обработчик на button тега, но ваш HTML имеет входной тег. Изменение Вы селектор для $("input")

$("input").click(function() { 
    alert(this.id); 
}); 

Edit:

Вы можете также сохранить яваскрипт и изменить вход для кнопки HTML:

<button id="some_id1" value="0">Click me!</button> 

Edit 2, после редактирования параметров порядка:

Ваш код не работает, потому что он выполнен до того, как кнопка написана на вашей странице. У вас есть два варианта: написать JavaScript после тела или обернуть функцию как это:

$(function() { 
    $("input").click(function() { 
     alert(this.id); 
    }); 
}); 

Fiddle

+0

Я не знаю, почему, но он все еще не работает. – g4ur4v

+0

Вам также понадобится обернуть любой код, который использует HTML-элементы внутри этого: '$ (function() {...});' Это гарантирует, что события будут подключены ПОСЛЕ создания элементов. – Katana314

+0

Да, либо вы пишете javascript после HTML, либо выполняете его, когда страница готова, как @ Katana314. –

2

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

$("input").click(function(){ 
    alert($(this).attr("id")); 
}); 
0

использовать идентификатор кнопки, вместо того, чтобы просто кнопка письма

Check this live demo

$(document).ready(function() { 
    $("input").click(function(event) { 
     alert(this.id); 
    }); 
}); 
0

это более специфичным для вашего примера:

$("input[type='button']").click(function(){ 
    alert(this.id); 
}); 

в любом случае вы можете сделать это с

$("input").click(function() { 
     alert(this.id); 
    }); 

до тех пор, пока у вас есть только один вход в ваш HTML.

Смежные вопросы