我有按钮和div,在每个部分我都有相同的ID我想获取按钮的ID并使用它来刷新div html.how我应该写*部分吗?
$(function() {
$(".button").click(function(){
var id=$(this).attr('id');
var dataString = 'id='+ id ;
$.ajax({
type: "POST",
url: "download_number.php",
data: dataString,
cache: false,
success: function(html)
{
*********I HAVE PROBLEM HERE**************
$('how to get the id of the div from var id of button above?').html(html);
}
});
});
});
股利:
Downloaded:<div id="<?php echo $id; ?>" ><?php echo $downloadcount;?></div>
按钮:
<input type = "button" value="Download" class="button" id="<?php echo $id; ?>" name="dl">
如果我上课它将更新整个div我想更新只是div实现的按钮
答案 0 :(得分:1)
按钮和div上的id
不能相同,id
值必须在文档中是唯一的。
我可能会做的是将按钮上的div id
作为data-divid
属性(prefix data-
的所有属性在HTML5的所有元素上都有效,并且无害在早期版本的HTML中),如下所示:
<input type="button" value="Download" class="button" data-divid="<?php echo $id; ?>" name="dl">
然后改变
var id=$(this).attr('id');
到
var id=$(this).attr('data-divid');
...然后在id
回调中使用success
var(因为回调是在定义id
的上下文中创建的闭包,因此回调可以访问到id
)。
HTML:
<div id="div1">This is div1</div>
<div id="div2">This is div2</div>
<div>
<input type="button" data-divid="div1" value="Update div1">
<input type="button" data-divid="div2" value="Update div2">
</div>
JavaScript的:
jQuery(function($) {
$("input[type=button]").click(function() {
var id = $(this).attr("data-divid");
// I'll use setTimeout to emulate doing an ajax call
setTimeout(function() {
// This is your 'success' function
$("#" + id).html("Updated at " + new Date());
}, 10);
return false;
});
});
答案 1 :(得分:0)
尝试类似:
$('.button').attr('id');
获取按钮的ID,然后更改它:
$('.button').attr('id',''); //delete previous id if existing
$('.button').attr('id','yourNewId'); //set new id
然后使用新的id:
$("#yourNewId").doSomething();
答案 2 :(得分:0)
将您的HTML更改为:
Downloaded:<div id="<?php echo $id; ?>" class="downloaded" ><?php echo $downloadcount;?></div>
然后执行以下操作:
var element_id = $(".downloaded").prop("id");
if(element_id = this.id){
$("#"+element_id).html(/* ... */);
}
答案 3 :(得分:0)
$(function() {
$(".button").click(function(){
var id=$(this).attr('id');
var dataString = 'id='+ id ;
$.ajax({
type: "POST",
url: "download_number.php",
data: dataString,
cache: false,
success: function(html)
{
$('.count-' + id).html(html); // for class
}
});
});
});
<div class="count-<?php echo $id; ?>" ><?php echo $downloadcount;?></div>
答案 4 :(得分:0)
使用id但是前缀,然后建立名称...
<div id="div_<?php echo $id; ?>" ><?php echo $downloadcount;?></div>
按钮:
<input type = "button" value="Download" class="button" id="<?php echo $id; ?>" name="dl">
然后在你的代码中,你已经在按钮中使用了id(并且它也将是div_),所以你可以在“成功”中做到:
$("#div_"+id).html(html);
答案 5 :(得分:0)
首先避免使用相同的IDS 然后你可以使用CSS选择器:
$('div.class') //div
$('input[type="button"].youridclass')
答案 6 :(得分:0)
您不能为此目的使用id属性,id不能是数字(有效的html),因此id必须是唯一的。请改用数据。
答案 7 :(得分:0)
首先,ids
应该是唯一的,如果你有相同的id
元素,你会遇到问题,特别是在使用jQuery时。
如果没有看到你的标记,很难给你一个有效的例子。但是,您可以通过遍历DOM获取与所点击的id
对应的div
的{{1}}。
示例标记:
button
<强> jquery的强>
<div id="example-div">
<input type="button" value="Example" />
</div>
答案 8 :(得分:0)
供您参考,请查看以下链接,了解可用于选择父元素的dom元素的各种方法。
jsperf.com/jquery-selectors-context/2