无法使用jQuery获取列表项ID

时间:2015-11-09 18:10:37

标签: html ajax

我需要将列表元素ID传递给ajax,而这段代码似乎没有完成这项工作:

HTML:

    <ul  id="tree">
       <li><a id="1">Finance</a></li>
       <li><a id="2">ACC</a></li>
        <li><a href="<?php echo base_url()?>admincont/departament/6>">HR</a></li>
   </ul>

JavaScript的:

<script type="text/javascript">
$( document ).ready(function() {
  $('#tree li').click(function(){
    $.ajax({
       method: "POST",
       data: {depID: $(this).attr('id')},// i have also tried  $(this).id
      url: "<?php echo base_url();?>/assets/getdepartment.php",
      success: function(msg){
        $('#result').html(msg);
      }
    })
  })
});
</script>

我的php文件:

<?php
$depID = $_POST['depID'];
echo $depID;
?>

在我的结果div中,我明白了 &#34;注意:未定义的索引:第2行&#34;

中的depID

1 个答案:

答案 0 :(得分:5)

this未引用您的锚点,它指的是列表项。

您可以使用this找到锚点:

data: {depID: $(this).find('a').attr('id')}

或(我认为最好),只需将事件处理程序附加到锚点即可:

$('#tree li a').click(function(e){
    e.preventDefault(); // If you need to prevent the default behaviour
    $.ajax({
        method: "POST",
        data: {depID: $(this).attr('id')},
        url: "<?php echo base_url();?>/assets/getdepartment.php",
        success: function(msg){
            $('#result').html(msg);
       }
   })
})