Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从脚本和指向父节点中获取document.currentscript_Javascript_Jquery - Fatal编程技术网

Javascript 如何从脚本和指向父节点中获取document.currentscript

Javascript 如何从脚本和指向父节点中获取document.currentscript,javascript,jquery,Javascript,Jquery,当用户滚动页面时,我将在同一个div中附加一个div标记和一个js标记 现在,我指向带有“js_div_1”、“js_div_2”、“js_div_3”等的父标记,加上一些东西 Html格式: <div id="divider" class="long"> <!-- Firt iteration - when document ready--> <div id="js_div_1" > <scrip

当用户滚动页面时,我将在同一个div中附加一个div标记和一个js标记

现在,我指向带有“js_div_1”、“js_div_2”、“js_div_3”等的父标记,加上一些东西

Html格式:

<div id="divider" class="long">
        <!-- Firt iteration - when document ready-->
        <div id="js_div_1" >
            <script async="" id="js_file_1" type="text/javascript" src="sample.js"></script>
        </div>

</div>
sample.js文件内容中:

console.log(document.currentScript);    
var parentTag = document.currentScript;
parentTag.parentNode.removeChild(parentTag );   
parentTag.parentNode.appendChild('Success');
实际输出:(console.log)


console.log(document.currentScript);
var parentTag=document.currentScript;
parentTag.parentNode.removeChild(parentTag);
parentTag.parentNode.appendChild('Success');
预期输出:(需要指向parentNode div'js_div_1'并追加响应)


成功
成功
等

要生成更快的javascript代码,您必须稍微更改Html:

Html代码:

<div id="divider" class="long">
    <!-- Firt iteration - when document ready-->
    <div id="js_div_1" class="js-div-container" data-iteration="1" >
        <script async="" id="js_file_1" class="js-link" type="text/javascript" src="sample.js"></script>
    </div>

</div>
这些代码将输出预期的结果。但是我不明白为什么这个脚本sample.js需要多次加载

<script>
console.log(document.currentScript);    
var parentTag = document.currentScript;
parentTag.parentNode.removeChild(parentTag );
parentTag.parentNode.appendChild('Success');    
</script>
 <div id="divider" class="long">
        <!-- 1st iteration - when document ready-->
        <div id="js_div_1" >
            Success
        </div>

       <!-- 2nd iteration - when document ready-->
        <div id="js_div_1" >
            Success
        </div>
       <!-- 3nd iteration -->
        etc...
 </div>
<div id="divider" class="long">
    <!-- Firt iteration - when document ready-->
    <div id="js_div_1" class="js-div-container" data-iteration="1" >
        <script async="" id="js_file_1" class="js-link" type="text/javascript" src="sample.js"></script>
    </div>

</div>
jQuery(document).ready(function($){
    $(window).scroll(function(){
    var scrollHeight = $(document).height();
    var scrollPosition = $(this).height() + $(this).scrollTop();

    if ((scrollHeight - scrollPosition) / scrollHeight === 0) {
           // when scroll to bottom of the page
           var el = $('.js-div-container:last-child');
           var iteration = parseInt(el.attr("data-iteration")) + 1;

           el.clone().attr({'id': 'js_div_' + iteration, 'data-iteration': iteration}).appendTo('#divider');

           el.find('.js-link').attr('id', 'js_file_' + iteration);
       }
    });
});