<HTML xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
</HEAD>
<BODY>
<div>
  <p> xxxxxxxxxxxxxxxxx </p>
  <span id="x">1<!--这里的1就是从数据库读取的id--></span> <span style="display:none;" class="af">
  <form>
    <textarea style="width:300px;height:100px; margin:3px 0 0 20px; border:#C90 1px solid;" id="te"></textarea>
    <input type="submit" value="提交" id="add">
  </form>
  </span><span class="reply"><a href="#" >回复</a></span> </div>
<div>
<script type="text/javascript">
    $(document).ready(function(){
       
            $(".reply").click(function(){
                $(".af").css({'display':'block'})
})
     $("#add").click(function(){
         var n=$("#x").val();
         alert(n);
var text=$("#te").val();
alert(text);
    })
                
</script>
</BODY>
</HTML>问题:这个问题困扰很久了 为何就不能获取到id等于1呢?大家帮帮那个忙 谢谢!

解决方案 »

  1.   

    var n=$("#x").val(); 改为
    var n=$("#x").html();试试看
      

  2.   

    var n=$("#x").html();
    alert(n);
    var text=$("#te").html();
    alert(text);
      

  3.   

    其实我的源码是这个 
    <input type="text" style=" width:10px;" name="uid" value="<?=$row[0];?>" id="uid"/>
    必须的用val() 但就是获取不到id
      

  4.   

    value="<?=$row[0];?> 也就是说隐藏域的id值是从数据库里读出的id
      

  5.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <style type="text/css">
    #container {
    width:1000px;
    margin:0 auto;
    }
    </style>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
           $(".reply").each(function(){
                $(this).click(function(){
                    $(".af").each(function(){$(this).css({'display':'none'})})
                    $(this).parent().find('.af').fadeIn('slow')
                })
            })
       $("#add").click(function(){


    var n=$("uid").html();
    alert(n);

    })
        })
    </script>
    </head>
    <body>
    <div id="container">
      <?
     $mysqli = new mysqli("localhost", "root", "123456", "test");
     if ($result = $mysqli->query("select * from book order by id desc limit 0,10"))
       {
       while($row = $result->fetch_array())
     {
       
    ?>
      <div style=" border-bottom:#CCC 1px solid; margin: 0 auto;">
        <p>
          <?=$row[1]?>
        </p>
        <input type="text" style=" width:10px;" name="uid" value="<?=$row[0];?>" id="uid"/>
        <span class="reply"><a href="#" >回复</a></span>
        <div style="display:none;" class="af">
          <form>
            <textarea style="width:300px;height:100px; margin:3px 0 0 60px; border:#C90 1px solid;" name="replyContent" id="replyContent"></textarea>
            </br>
            <div style=" margin-left:150px; margin-top:10px;">
              <input value="提交" type="submit" style="padding:2px; border:#C60 1px solid;" id="add"/>
              <input value="取消" type="submit" style="padding:2px; border:#C60 1px solid;" id="del"/>
            </div>
          </form>
        </div>
      </div>
      <?
     }
    ?>
      <?
       }
      $result->close();
      $mysqli->close();
       ?>
    </div>
    <!--end#container-->
    </body>
    </html>这个是完整的 就是获取不到id 嘛原因?
      

  6.   

    看一下生产的html源代码中value属性有没有值。value="<?=$row[0];?>改为value="<?php echo $row[0]; ?>"
      

  7.   

    不是这个原因 value="<?=$row[0];?>改为value="100" 即使这样还是获取不到 
      

  8.   

    你写的PHP代码很有可能没有执行,像这种短标签风格(<?)需要在配置文件中启用才行。
    php.ini
    short_open_tag = On
      

  9.   

    完整的里面
    把$("#add").click(function(){
    var n=$("uid").html();
    alert(n);
    })
    改为
    var n=$("#uid").val();
    试试
      

  10.   

    var n=$("input[name='uid']").html();
    alert(n);
      

  11.   

    //上面写错了,用.val()取值,你写的选择器有问题。
    var n=$("input[name='uid']").val();
    alert(n);
      

  12.   

    //汗,上面这样写可能也有问题,再改一下
    //最好给这个文本框加个id属性
    var n=$("input[name='uid']:eq(0)").val();
    alert(n);
      

  13.   

    很奇怪 只能获取到第一条的留言id while循环按道理把所有的留言id都进行赋值了吧
      

  14.   

    这样当然只能取到一条啊,又没有写循环。
    $("#add").click(function() {
        $("input[name='uid']").each( function() {
            alert($(this).val());
        });
    });
      

  15.   

    11楼正解,是选择器的问题.(1).选择器
    var n=$("input[name='uid']").val();
    (2).html();
    html(),是应用于div ,span,这样的容器标签,input要向取值的话,应该用val().
      

  16.   

    回复第三条才把第三条的隐藏id给找出来 不需要一次把id都给找出来吧 但偏偏点击第三条回复留言的时候 这个id=3就取不出来 回复第一条留言这个id=1倒是能找出来 其他的都不行呢 
      

  17.   


    //html
    <input type="text" style=" width:10px;" name="uid" value="<?=$row[0];?>" id="uid" onclick="addClicked(this);"/>//js
    addClicked:function(obj){
         alert($(obj).val());
    }试下这个能行么
      

  18.   

    要想获取id的值只能用html或text用val是无法获取值得
    val text html三个函数没有弄清楚
    val只对有value属性的dom元素有效
    text只要元素包含文本元素,就返回此文本元素
    html自然是知道用dom元素的innnerhtml属性
    所以要想取得id的值只有text 和html可用
      

  19.   

    “没反应啊”抱歉,脚本写错了<script type="text/javascript">
    var addClicked =function(obj){
    alert($(obj).val());
    }
    </script><body>
    <input id="uid" type="text" style=" width:10px;" name="uid" value="3" onclick="addClicked(this);">
    </body>
      

  20.   

    谢谢 id是能取到了 但用的是js的方法 不能和jquery统一 这岂不是头疼医头了