只是将一些小页面作为一个更大的项目的元素,并且我对我目前的问题感到困惑的是我的代码:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<STYLE TYPE="text/css">
.questionBlock { font-size: x-large; color: red }
</STYLE>
<script type="text/javascript">
$(document).ready(function() {
alert("sdsd")
$("input[@name='questionType']").change(function(){
alert("dfdfdf");
var selected = $("form input:radio:checked").val();
alert(selected);
})
});
</script>
<form action="">
<input type="radio" name="questionType" value="closed" /> Closed Endeded<br />
<input type="radio" name="questionType" value="matrix" /> Matrix Question<br />
<input type="radio" name="questionType" value="open" /> Open Ended
</form>
<div class="questionBlock" id="closed">lol</div>
<div class="questionBlock" id="open">rol</div>
<div class="questionBlock" id="matrix">bol</div>
但是改变事件永远不会触发,无论浏览器如何,我都尝试过使用绑定,但它正在推动我的发展!
答案 0 :(得分:5)
jQuery attribute selectors不需要@前缀(如XPath)。像这样更改你的代码:
$("input[name='questionType']").change(function(){
Here是一个有效的版本。
答案 1 :(得分:1)
您需要删除@ fiddle
$(document).ready(function() {
$('input[name="questionType"]').change(function(){
alert("dfdfdf");
var selected = $("form input:radio:checked").val();
alert(selected);
})
});
答案 2 :(得分:0)
jQuery不再在Xpath风格的attr选择器中使用“@”。在这种情况下,您的选择器与任何东西都不匹配。