Вывести новую строку в исходном коде с помощью jQuery - PullRequest
1 голос
/ 27 апреля 2010

У меня есть простая функция в 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 ]

1 голос
/ 27 апреля 2010

Вы можете изменить это:

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

Я бы кэшировал селектор плат за пределами вашего цикла, как это:

var board = $('#board');

Затем в вашем цикле замените вышеприведенное на:

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

Это даст вам новую строку в источнике и ускорит ваш цикл, так как он не ищет #board каждый раз. Если вы используете jQuery 1.4, вы можете использовать $(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
  }
}
0 голосов
/ 27 апреля 2010

Вы пробовали \r\n? Я полагаю, что это метод перевода строки UTF-8.

...