代码之家  ›  专栏  ›  技术社区  ›  Manuel Bitto

使用jQuery打印源代码中的新行

  •  1
  • Manuel Bitto  · 技术社区  · 16 年前

    我在jQuery中有一个简单的函数,它在DOM中创建新元素。问题是在html源代码中,它将所有元素都附加在同一行中,阅读起来非常糟糕。

    function _loadNewElements(elements){
        for(var i=0; i<elements.length; i++){
            var fixedElement = $('<img />')
            var position = elements[i].position;
            var cssMap = {
                'position': 'fixed',
                'top': position.top + "px",
                'left': position.left + "px"
            };
            fixedElement.css(cssMap);
            fixedElement.addClass("fixedTag");
            fixedElement.attr('alt', elements[i].text);
            fixedElement.attr('src', "elements/" + elements[i].id + ".png");
            fixedElement.appendTo($('#board'));
            //i'd like to print something here like ("\n");
    
        }
    }
    

    document.write("\n") 但在这种情况下,这是行不通的。

    2 回复  |  直到 11 年前
        1
  •  1
  •   Nick Craver    16 年前

    您可以更改:

    fixedElement.appendTo($('#board'));
    

    我会在你的循环外缓存板选择器,如下所示:

    var board = $('#board');
    

    然后在循环中,将上述内容替换为:

    board.append(fixedElement).append('\n');
    

    这将在源代码中为您提供一个新行,并加速您的循环,因为它不寻找 #board $(html, props) 简而言之:

    function _loadNewElements(elements){
      var board = $('#board');
      for(var i=0; i<elements.length; i++){
        $('<img />', {
            css : { 'position': 'fixed',
                  'top': elements[i].position.top + "px",
                  'left': elements[i].position.left + "px" },
            'class': "fixedTag",
            'alt': elements[i].text,
            'src': "elements/" + elements[i].id + ".png"
        }).appendTo(board);
        board.append('\n'); //Add new-line for your source view
      }
    }
    
        2
  •  0
  •   dclowd9901    16 年前

    你试过了吗 \r\n