将导入的js代码引用到导入的元素

时间:2019-02-08 20:55:14

标签: javascript jquery

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文件,它们具有自己的imgajs代码。

我当然可以手动对图像进行重新分类并重新定位js代码,但这是一项艰巨的工作。

有可能吗?

2 个答案:

答案 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)

到目前为止,您要在另一页中包含第一页,这意味着两者都在同一页上,重命名类是这里唯一的出路。