我目前正在尝试将数据从我的服务器传递到我的主页面。我目前有每个返回结果的PHP回显:
while($row = mysql_fetch_array($result))
{
echo "<img class='s' id=" . $row['id'] . " src=QR/" . $row['src'] ".png>";
}
当我尝试在id:
之后添加字段num时<img class='s' id=(rowid) num=".$row['num']." .......
我使用
时未定义alert(this.num)
但是
alert(this.id)
的工作原理。我怎样才能传递num值?
我不得不使用jQuery并使用.attr()来定义我自己的名为num的属性并将其调出。
答案 0 :(得分:4)
很简单。 id
是img
代码的有效属性。 num
不是。您不能将任意属性分配给标记并期望它可以正常工作。
如果你想将你的PHP数据传递给javascript,使用隐藏的表单元素,或者更简单的是这样:
<?php
echo '<script type="text/javascript">';
echo 'var num = ' . $num . ';';
echo '</script>';
?>
当然我知道你在循环中,这只是一个例子。你可以轻松地将它变成数组或其他东西。
答案 1 :(得分:2)
添加属性不起作用。您需要在<input type=hidden value='num'>
内添加<div>
或其他内容,其中 num 是您的号码数据。您还需要通过为其提供ID来使输入字段可寻址:
echo("<input type=hidden id=\"$row[id]-num\" value='num'>");
另外,我看到一个结束div
标记但没有开始标记。你想解决这个问题!
答案 2 :(得分:1)
从技术上讲,您不应该分配自定义属性。由于有关数据前缀的讨论,Jcolebrand的原始帖子值得投票。但是,即使技术上不正确,您也应该能够使用getAttribute()函数获取值。
this.getAttribute("num");
这适用于Firefox,但在其他浏览器中无法保证。
答案 3 :(得分:-1)
我没有在jQuery之外尝试过这个,但是在那个框架中你会使用
alert(this.attr("num"));
检索非标准属性。也可以使用普通的javascript,但我没试过。