我有一个小的3x4表格,如JSFiddle.
所示单击图像会发出警报,该警报基本上包含所单击图像的整个行数据。
然而,它无法在任何浏览器中使用(在Chrome 31.0.1650.63 m,IE 10和Firefox 25.0.1中)。我的代码如下所示。 “jquery-1.9.1.js”实际上this存在于与php文件相同的文件夹中。任何线索为什么它不在JSFiddle外工作?此外,如果我使用while($row = oci_fetch_array($result, OCI_ASSOC+OCI_RETURN_LOBS))
?
<html>
<head>
<script src="jquery-1.9.1.js">
$("img.print").click(function (event) {
//Prevent the hyperlink to perform default behavior
event.preventDefault();
var $td = $(this).parent().closest('tr').children('td');
var string1 = $td.eq(0).text();
var string2 = $td.eq(1).text();
var string3 = $td.eq(2).text();
alert(string1+' '+string2+' '+string3);
});
</script>
</head>
<body>
PHP代码
<?php
echo '
<table border="1">
<tr>
<td>Data 1</td>
<td>Data 2</td>
<td>Data 3</td>
<td><img src="https://www.gravatar.com/avatar/12e4484b5ae3e5f676efb7c18cbac643?s=24&d=identicon&r=PG" class="print"></img></td>
</tr>
<tr>
<td>Data 4</td>
<td>Data 5</td>
<td>Data 6</td>
<td><img src="https://www.gravatar.com/avatar/12e4484b5ae3e5f676efb7c18cbac643?s=24&d=identicon&r=PG" class="print"></img></td>
</tr>
<tr>
<td>Data 7</td>
<td>Data 8</td>
<td>Data 9</td>
<td><img src="https://www.gravatar.com/avatar/12e4484b5ae3e5f676efb7c18cbac643?s=24&d=identicon&r=PG" class="print"></img></td>
</tr>
</table>
';
?>
</body>
</html>
答案 0 :(得分:2)
您的代码不起作用,因为在代码运行时尚未构建DOM。
您应该将script
标记放在结束body
标记之前(这是一种不错的做法)或仅run your code when the DOM is ready:
$(document).ready(function() {
$("img.print").click(function (event) {
//Prevent the hyperlink to perform default behavior
event.preventDefault();
var $td = $(this).parent().closest('tr').children('td');
var string1 = $td.eq(0).text();
var string2 = $td.eq(1).text();
var string3 = $td.eq(2).text();
alert(string1+' '+string2+' '+string3);
});
});
另外,你包含jQuery的方式是错误的。带script
的{{1}}代码不应包含内容。所以你需要两个src
标签:
script
还有一点需要注意:永远不要忘记指定DOCTYPE,这非常重要!
<script src="jquery-1.9.1.js"></script>
<script>
$("img.print").click(function (event) {
//...
});
</script>