Drupal更改Javascript字符集并删除元素

Drupal changing Javascript charset and removing elements

本文关键字:删除 元素 字符集 更改 Javascript Drupal      更新时间:2023-09-26

当我通过Drupal运行脚本时,Javascript似乎会被修改。我在页面上运行带有jQuery 1.9.1的Bootstrap,也是在一个严格的doctype中运行的。这个特殊的脚本为引导转盘创建了一个导航。有人知道为什么会发生这种情况吗:

原始代码:

            <script type="text/javascript" charset="utf-8">
            $(document).ready(function() {  
               $('.carousel[id]').each(function() {
                   //For each carousel on the page, create this HTML
                   var html = '<div class="nav-collapse collapse" data-target="' + $(this).attr('id') + '"><ul class="nav">';
                       for(var i = 0; i < $(this).find('.item').size(); i ++) {
                           html += '<li';
                               if(i == 0) {
                                   html += ' class="active"';
                               }
                               var item = $(this).find('.item').get(i);
                                   html += '><a href="#">'  + $(item).attr('data-title') + '</a></li>';
                               }                                    
                               html += '</ul></li>';
                               $('.btn-navbar').after(html);
                               $('.carousel-control.left[href="#' + $(this).attr('id') + '"]').hide();
                   }).bind('slid', function(e) {
                       var nav = $('.nav-collapse[data-target="' + $(this).attr('id') + '"] ul');
                       var index = $(this).find('.item.active').index();
                       var item = nav.find('li').get(index);
                       nav.find('li.active').removeClass('active');
                       $(item).addClass('active');
                       if(index == 0) {
                           $('.carousel-control.left[href="#' + $(this).attr('id') + '"]').fadeOut();
                       } else {
                           $('.carousel-control.left[href="#' + $(this).attr('id') + '"]').fadeIn();
                       }
                       if(index == nav.find('li').size() - 1) {
                           $('.carousel-control.right[href="#' + $(this).attr('id') + '"]').fadeOut();
                       } else {
                           $('.carousel-control.right[href="#' + $(this).attr('id') + '"]').fadeIn();
                       }
                   });
                   $('.nav a').bind('click', function(e) {
                       var index = $(this).parent().index();
                       var carousel = $('#' + $(this).closest('.nav-collapse').attr('data-target'));
                       carousel.carousel(index);
                       e.preventDefault();
                   });
            });
            </script>

Drupal之后生成的源代码(错误在代码中标记):

            <script type="text/javascript" charset="utf-8">
            $(document).ready(function() {  
               $('.carousel[id]').each(function() {
                   //For each carousel on the page, create this HTML
                   var html = '<div class="nav-collapse collapse" data-target="' + $(this).attr('id') + '"><ul class="nav">';
                       for(var i = 0; i &lt; $(this).find('.item').size(); i ++) {                                                  ///&lt replaces < Original Code: for(var i = 0; i &lt; $(this).find('.item').size(); i ++) {    
                           html += '<li';
                               if(i == 0) {
                                   html += ' class="active"';
                               }
                               var item = $(this).find('.item').get(i);
                                   html += '><a href="#">'  + $(item).attr('data-title') + '</a>';                                  ///removed </li> Original Code: html += '><a href="#">'  + $(item).attr('data-title') + '</a>';
                               }                                    
                               html += '</li';></ul>';                                                                              ///adds semicolon and reverses </ul></li> order Original Code: html += '</ul></li>';    
                               $('.btn-navbar').after(html);
                               $('.carousel-control.left[href="#' + $(this).attr('id') + '"]').hide();
                   }).bind('slid', function(e) {
                       var nav = $('.nav-collapse[data-target="' + $(this).attr('id') + '"] ul');
                       var index = $(this).find('.item.active').index();
                       var item = nav.find('li').get(index);
                       nav.find('li.active').removeClass('active');
                       $(item).addClass('active');
                       if(index == 0) {
                           $('.carousel-control.left[href="#' + $(this).attr('id') + '"]').fadeOut();
                       } else {
                           $('.carousel-control.left[href="#' + $(this).attr('id') + '"]').fadeIn();
                       }
                       if(index == nav.find('li').size() - 1) {
                           $('.carousel-control.right[href="#' + $(this).attr('id') + '"]').fadeOut();
                       } else {
                           $('.carousel-control.right[href="#' + $(this).attr('id') + '"]').fadeIn();
                       }
                   });
                   $('.nav a').bind('click', function(e) {
                       var index = $(this).parent().index();
                       var carousel = $('#' + $(this).closest('.nav-collapse').attr('data-target'));
                       carousel.carousel(index);
                       e.preventDefault();
                   });
            });
            </div></script>                                                                                                     ///adds closing div tag

修复-

我的错误出现在for循环中:

for(var i = 0; i > $(this).find('.item').size(); i ++) {

i > $(this)应为i!=$(this)

我的错误出现在for循环中:

for(var i = 0; i > $(this).find('.item').size(); i ++) {

i > $(this)应为i!=$(this)