index.php
<img class='imga' src='some_src' alt='img'>
<img class='imga' src='some_src' alt='img'>
<?php include('anima.php');?>
anima.php
<img class='imga ' src='some_src' alt='img'>
<img class='imga' src='some_src' alt='img'>
<button>CLICK</button>
<script>
$('button').on('click', function(){
$('.imga').hide();
}
</script>
单击button
隐藏所有(4)张图像。
是否有办法告诉导入的js
代码仅引用相同导入文件中的元素?
在上述情况下,它应该只隐藏最后两个图像。
这是问题的简化版本。
实际上包括了许多php文件,它们具有自己的imga
和js
代码。
我当然可以手动对图像进行重新分类并重新定位js代码,但这是一项艰巨的工作。
有可能吗?
答案 0 :(得分:2)
从技术上讲,您可以将每个包含的输出包装在具有不同ID的div中。然后在jQuery中引用该ID。因为一旦将其输出到浏览器,浏览器就不会在乎是否包含1或1百万个PHP文件,而最终它的所有HTML都包含在内。
然后,为了自动编辑包含文件以包装输出,请使用PHP扫描目录中的包含文件。让它打开文件,在div前面加上末尾div,然后覆盖文件。这样,只需花费几分钟的工作,就可以更新所有包含的内容。
编辑:示例
下面是一个基本示例,您将需要对其进行修改。它会扫描一个文件夹,打开一个文件,然后将内容包装在div中,文件名的ID减去 .php ,然后用新内容覆盖该文件。
<?php
$dir = "testfiles/";
$files = scandir($dir);
foreach($files as $file){
if(strlen($file) > 4){
file_put_contents($dir . $file,"<div id='" . str_replace(".php","",$file) . "'>" . file_get_contents($dir . $file) . "</div>") ;
}
}
?>
取决于您的include的工作方式,您可能想要在其开头和结尾添加echo,而不是普通的输出。我不确定您的收录方式如何工作,而且我已经看到它做了很多工作。
答案 1 :(得分:1)
到目前为止,您要在另一页中包含第一页,这意味着两者都在同一页上,重命名类是这里唯一的出路。