我正在尝试创建一些jquery代码来更新元素,但我遇到了问题。它不会更新,我认为它是因为元素id?
这是我的JS代码:
<script type="text/javascript">
$(document).ready(function()
{
$("#vote_button_" + $(this).attr('id')).click(function()
{
$("div#vote_count").show().html('<h2>voting, please wait...</h2>');
});
});
</script>
这是HTML代码:
<div class="vote_container">
<div class="vote_button" id="vote_button_31"><img src="/images/picture_31.png"></div>
<div class="vote_count" id="vote_count">0</div>
</div>
答案 0 :(得分:2)
你告诉它使用文件的ID(我认为)。
你当然可以这样做:
$("#vote_button_31").click(function()
{
$("#vote_count").show().html('<h2>voting, please wait...</h2>');
});
如果您希望代码适用于所有投票按钮,请尝试以下操作:
$(".vote_button").click(function()
{
$(this).siblings('.vote_count').show().html('<h2>voting, please wait...</h2>');
});
答案 1 :(得分:2)
$("#vote_button_" + $(this).attr('id')).click(function()...
您调用它的方式,this
根本没有上下文。由于您在div
上有一个课程,为什么不使用它呢?
$(".vote_button").click(function() {...
如果您在加载页面时不知道有问题的ID,那也会有效。如果您动态添加divs
,那么您可能希望使用live
或delegate
:
$(".vote_button").live("click", function() {...
答案 2 :(得分:0)
为什么不直接选择元素:
<script type="text/javascript">
$(document).ready(function()
{
$("div#vote_button_31").click(function()
{
$("div#vote_count").show().html('<h2>voting, please wait...</h2>');
});
});
</script>
答案 3 :(得分:-1)
你不能这样做。相反,试试这个:
<script type="text/javascript">
$(document).ready(function()
{
$(".vote_button").click(function()
{
$("div#vote_count").show().html('<h2>voting, please wait...</h2>');
});
});