请您查看以下代码,并告诉我为什么我无法使用this.id
获取所选无线电的ID?
<div id="pay" class="btn-group" data-toggle="buttons">
<label class="btn btn-primary">
<input type="radio" name="mode" id="option1"> Cash
</label>
<label class="btn btn-primary">
<input type="radio" name="mode" id="option2"> Cheque
</label>
</div>
<script>
$("#pay input:radio").on('click',function(){
alert(this.id);
});
</script>
由于
答案 0 :(得分:1)
如果发布的代码实际上是jQuery的 complete ,那么您只是忘记使用文档就绪处理程序:
$(document).ready(function(){
// your code should be in here
});
或者您可以确保在结束<script>
标记之前放置</body>
,这两种方法都可以确保页面内容加载并显示在页面之前>您尝试绑定事件处理程序。
答案 1 :(得分:0)
确保在DOM准备就绪后执行jQuery代码:
$(document).ready(function () {
// All your function calls, self-invoked functions, etc
// Also you define your event handlers here
});
关于.ready( handler )
的{{3}}:
指定DOM完全执行时要执行的函数 装载
然后,您需要将this
转换为jQuery对象以访问其方法,例如.attr()
喜欢这样:$(this)
从jQuery 1.7开始,您可以使用.on()
函数来使用事件委派。
再次docs:
将一个或多个事件的事件处理函数附加到 选定的元素。
<script>
$(document).ready(function () {
$(document).on('click', '#pay input:radio', function() {
// Instead of using alert(), use the console for debugging
window.console.log($(this).attr('id'));
});
});
</script>
答案 2 :(得分:0)
尝试使用
$(this).attr("id")
代替this.id
答案 3 :(得分:0)
这将有效;
$(function(){
$(document).on('click', '#pay input:radio', function(){
alert($(this).prop('id'))
});
})