使用attr(“id”)检索div的id;不管用

时间:2011-03-25 22:58:16

标签: php jquery html

index.php

 if (idx == 8) {
     var str="<?php echo $username1; ?>";
     document.write(str);
     jQuery.get("usermessage.php?username="+str, function(data) {
       document.write(data);
       var msgIDss = $(".messagepiece:last").attr("id");
       document.write(msgIDss);
     });
 }

usermessage.php

$username1=$_GET["username"];
$query2 = "SELECT id, message, datetime FROM messages WHERE username='{$username1}' ORDER BY id";
$result2 = mysql_query($query2,$connection) or die (mysql_error());
confirm_query($result2);
$num = mysql_num_rows($result2);

while($userinfo = mysql_fetch_array($result2)){
  $msgID= $userinfo['id'];
  echo "<div class=\"messagepiece\" id=" . $msgID . ">" . $userinfo['id'] . 
    $userinfo['message'] . "<br><span style=\"font-size:13px; color:orange;\">" . 
    $userinfo['datetime'] . "</span></div>|";       
}

我的问题是document.write(msgIDss)显示空/空值。

在index.php上,我测试了document.write(data);它的工作原理。我已经测试了document.write(str),它也有效,所以if (idx == 8)不是问题。我还手动测试了打开usermessage.php并成功显示所有div,因此usermessage.php页面不是问题。我想问题出现在这行代码var msgIDss = $(".messagepiece:last").attr("id")上。如何解决?

3 个答案:

答案 0 :(得分:3)

我猜这是因为你没有用双引号包装'id'属性的值,你正在测试的浏览器不能正确获取id。

尝试以下方法:

echo "<div class=\"messagepiece\" id=\"" . $msgID . "\">"

答案 1 :(得分:0)

您可以尝试:

echo "<div class=\"messagepiece\" id=\"" . $msgID . "\">"

请注意id值周围添加的转义引号。

答案 2 :(得分:0)

我认为问题是id属性是以数字开头的。使用字符串作为前缀应修复:

echo "<div class=\"messagepiece\" id=\"message-" . $msgID . "\">" ......