2010-04-26 2 views
1

jQuery에서 DOM에 새 요소를 만드는 간단한 함수가 있습니다. 문제는 html 소스 코드에 있으며, 같은 줄에있는 모든 요소를 ​​추가하고 읽을 때 매우 나쁩니다. jQuery를 사용하여 소스 코드의 새 행 인쇄

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")을 시도했지만 이러한 맥락에서 작동하지 않습니다. 어떤 해결책이 있습니까?

답변

1

이 작업을 변경할 수 있습니다

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

var board = $('#board'); 

그런 다음 루프로 위의 대체 :

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

나는 다음과 같이 루프 외부 보드 선택을 캐시 것

이렇게하면 소스가 새 라인이되고 루프가 빨라집니다.을 찾지 않기 때문에매번. 당신이 jQuery를 1.4을 사용하는 경우, 당신은이에 모두를 단축 $(html, props)을 사용할 수 있습니다 : 당신은 \r\n

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

맞음! 귀하의 답변과 귀하의 유용한 제안에 감사드립니다. –

0

시도 했습니까? UTF-8 방식의 줄 바꿈이라고 생각합니다.