这是我的PHP代码:
<?php
$all_images = glob("Images/Classes/{*.png, *.PNG}", GLOB_BRACE);
echo json_encode($all_images);
shuffle($all_images);
?>
我的Javascript代码:
function Images(){
var i;
var z = Math.floor($('.Images').height() / 105); //Var z is the amount of images which fit in my div called .Images
var images = JSON.parse( '<?php echo json_encode($all_images); ?>' ); //Get Array from PHP which contains all images in the folder.
for (i = 0; i < z; i++) {
var a = document.createElement('a');
var noextension = images[i].substring(0, images[i].lastIndexOf("."));
var name = noextension.substring(noextension.lastIndexOf("/") + 1);
var final = "/Wiki/" + name + ".php";
a.setAttribute("href", final);
var x = document.createElement('img');
x.setAttribute("src", images[i]);
x.setAttribute("alt", name);
x.setAttribute("title", name);
a.appendChild(x);
document.getElementsByClassName('Images')[0].appendChild(a);
}
};
我终于制作了这个程序,所以它确实有效,感谢你们,但我仍然有问题。问题是PHP代码在HTML代码中粘贴了一行。但PHP代码不应该写任何东西。例如,如果我将PHP代码从div Images移动到另一个DIV,则该阵列将弹出另一个div。那么为什么PHP代码在HTML代码中写一些东西呢?我该如何防止这种情况? Error
编辑:我通过添加document.getElementsByClassName(&#39; Images&#39;)[0] .innerHTML =&#34;&#34;;在javascript。
答案 0 :(得分:0)
尝试在之前将img包含在锚标记中。像这样:
a.appendChild(x);
然后是你的:
document.getElementsByClassName('Images')[0].appendChild(a);
如果我对您理解正确,并且错误说明也是如此,则无法找到所需结构所需的元素
答案 1 :(得分:0)
正则表达式会让您的生活更轻松。而不是使用&#34;替换&#34;,我会使用这样的东西来完全控制通过的字符串。模式可以增强 - 或者更简单(https://regex101.com/)。我希望这会给你一个想法。祝你好运!
var str = "http://www.blastr.com/sites/blastr/files/Yoda-Meditating.jpg"
var pattern = /([-^\w+ _:]+)(\.(jpe?g|gif|png){1,4})$/gi;
var image = pattern.exec(str);
var fullName = image[0]; //Yoda-Meditating.jpg
var name = image[1]; //Yoda-Meditating
var fullExtension = image[2];//.jpg
var extension = image[3];//jpg
&#13;