用jquery指定div id

时间:2012-10-15 13:09:03

标签: php jquery ajax

我有按钮和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实现的按钮

9 个答案:

答案 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)。

这是一个简单的例子:Live copy | source

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