gpt4 book ai didi

javascript - 从 PHP 获取 Javascript 中的 .src

转载 作者:行者123 更新时间:2023-12-02 15:21:11 24 4
gpt4 key购买 nike

我有一个包含几张图像的文件夹。我正在使用PHP获取每个图像的路径以在 HTML <table> 中显示它们。现在我正在尝试使用 addEventListener在另一个 div 中显示图像。我开始向你展示我的PHP :

<table id="imgTable">
<tr>
<?php
$handle = opendir(dirname(realpath(_FILE_)).'../up/to/my/folder');
while($file = readdir($handle)) {
if($file !== '.' && $file !== '..') {
echo '<tr><img src="../up/to/my/folder/' .$file. '" alt="image" class="imgClass"></td>';
}
}
?>
</tr>
</table>

之后我想使用addEventListener从单击的图像中获取 URL 并使用 src 在另一个中显示图像 div 。就像一个照相馆。这就是我在 JS 中所拥有的:

<script type="text/javascript">
document.getElementsByTagName('img').addEventListener("click", function(){
document.getElementById('imgViewer').style.visibility= "visible";
var img = document.getElemensByClassName('imgClass');
for(i=0; i<img.length; i++) {
document.getElementById('bigImg')src = img[i].src;
}
}
</script>

之后,我用 CSS 在 a 中显示图像隐藏div :

<div id="imgViewer">
<img src="../up/to/my/folder/imgholder.png" id="bigImg">
</div>

我不想使用onClick 。但是 addEventListener 没有任何反应我不明白为什么。这是我在大学的第一年,我刚刚开始编写 JavaScript。也许有人可以帮助我。

最佳答案

ID 在 HTML4 和 HTML5 中都应该是唯一的。

http://www.w3.org/TR/html4/struct/global.html

id = name [CS] This attribute assigns a name to an element. This name must be unique in a document.

http://www.w3.org/TR/html5/dom.html#the-id-attribute

The id attribute specifies its element's unique identifier (ID). [DOM]

您可以如下修改 PHP 和 JavaScript 代码

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>OnClick</title>
</head>

<body>

<table id="imgTable">
<tr><?php

$handle = opendir(dirname(realpath(_FILE_)).'../up/to/my/folder');

$imgID = 0;

while($file = readdir($handle)){
if($file !== '.' && $file !== '..'){
echo ' <td><img src="../up/to/my/folder/' .$file. '" alt="image" class="imgClass" id="imageId_'.$imgID.'"></td>\n';
$imgID++;
}
}
?></tr>
</table>

<div id="imgViewer">
<img src="../up/to/my/folder/imgholder.png" id="bigImg">
</div>

<script type="text/javascript">

// create array of all images inside "imgTable"
var imglist = document.getElementById("imgTable").getElementsByTagName("img");

// loop to create onclick event for each image
for(i=0; i<imglist.length; i++) {
document.getElementById(imglist[i].id).addEventListener("click", function(){
document.getElementById('bigImg').src = this.src;
});
}

</script>

</body>
</html>

代码已经过测试并且可以工作...

您可以运行以下代码片段进行演示(我替换图像并手动添加 html 代码而不是 php 部分)

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>OnClick</title>
</head>

<body>

<table id="imgTable">
<tr>
<td><img src="http://i.imgur.com/99ACX4d.jpg" alt="image" class="imgClass" id="imageId_1"></td>
<td><img src="http://i.imgur.com/lXVuaa3.jpg" alt="image" class="imgClass" id="imageId_2"></td>
</tr>
</table>

<div id="imgViewer">
<img src="http://i.imgur.com/QsYVnSd.png" id="bigImg">
</div>

<script type="text/javascript">

// create array of all images inside "imgTable"
var imglist = document.getElementById("imgTable").getElementsByTagName("img");

// loop to create onclick event for each image
for(i=0; i<imglist.length; i++) {
document.getElementById(imglist[i].id).addEventListener("click", function(){
document.getElementById('bigImg').src = this.src;
});
}

</script>

</body>
</html>

还格式化您的代码并使用一些带有自动完成和调试器的代码编辑器。你有很多小错误(例如<tr>而不是php echo中的<td>,你忘记了JS中src之前的点(.),getElemen中没有tt>sByClassName)。

关于javascript - 从 PHP 获取 Javascript 中的 .src,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34043366/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com