0

我的编码中有一个while循环

while (($i < $num3b)&&($i < ($start+$perpage))) {
 $tododetail_id=mysql_result($result3b,$i,"tododetail_id");
 $comment=formatUrlsInText(mysql_result($result3b,$i,"comment"));
 $staff_name=mysql_result($result3b,$i,"staff_name");

 echo "<tr><td><span><font color='#5858FA'>" . $staff_name . nl2br($comment) . "</font>
 <span style='float:right' id='create-user'>Reply Message</span>";
$i++;}

如何onclick“回复消息”jquery会$staff_name相应地弹出$comment。这是我的jQuery代码

    $( '[id^="create-user"]')
  .click(function() {
  var nameStf = $(this).data('id');
  alert (nameStf);
    $( "#dialog-form" ).dialog( "open" );
  });

谢谢

4

4 回答 4

2

你可以使用data-attributes

HTML

<span style='float:right' class="reply" data-staffname="staffname" data-comment="staff comment">Reply Message</span>

jQuery

$(document).ready(function() {
    $('span.reply').click(function() {
        var staffname = $(this).data('staffname');
        var comment = $(this).data('comment');
        alert(staffname + ': ' + comment);
    });
});
于 2013-10-01T07:55:36.910 回答
0

您的 HTML 是一团糟,您的 jQuery 与它不对应。你有这一行:

$( "#dialog-form" ).dialog( "open" );

但是您还没有向我们展示任何包含 ID 元素的 HTML dialog-form

您应该重组您的 HTML,以便您不使用font标签,每个 ID 都是唯一的,并且标签正确嵌套和关闭。如果您不确定,请通过验证器运行您的输出 HTML 。

然后,您可以执行以下操作:

$('span').click(function(){
  alert($(this).closest('.comment'));
});

显然,您必须将评论数据放在带有 class 的元素中comment

另外,如果你想通过 jQuery 的 ID 选择一个元素:

// Incorrect
$('[id^="create-user"]')

// Correct
var $createUser = $('#create-user');

// Also correct (normal JavaScript)
var createUser = document.getElementById('create-user');
于 2013-10-01T08:02:05.877 回答
0

当您回显标签时,我看不到您正在任何地方关闭它们。您的 HTML 必须正确才能让 jQuery 正常工作。ID 也必须是唯一的,所以使用类。

HTML

<tr>
    <td>
        <span style="color: #5858FA;">SOMETHING 2</span>
        <span class="create-user">Reply Message</span>
    </td>
</tr>

JS

$('.create-user').click(function(){
    var $text = $(this).prev().text();
    alert($text);
});

演示

于 2013-10-01T08:06:22.067 回答
0

id 必须是唯一的,就像数据库中的 id 一样。然后将 jquery 脚本放入循环中。或者在 html 中使用将 id 传递给 JavaScript 函数的 onclick 函数。

<?php
echo "<tr><td><span><font color='#5858FA'>" . $staff_name . nl2br($comment) . "</font>
 <span style='float:right' id="<?php echo $row['id'];">Reply Message</span>";
$i++;
?>
    <script type="text/javascript">
     $( "#<?php echo $row['id']; ?>")
  .click(function() {
  var nameStf = $(this).data('id');
  alert (nameStf);
    $( "#dialog-form" ).dialog( "open" );
  });
</script>
<?php }?>

尽量不要在 echo 语句中使用 html,因为 echo 是从服务器加载的 php 语句,它比在浏览器中加载的普通 html 慢。

于 2013-10-01T08:18:29.687 回答