2013-07-01 2 views
0

작은 해상도의 사람들을 위해 정렬되지 않은 목록을 <select> 상자로 변환하려고합니다. 목록의 수준에 따라 텍스트를 들여 씁니다. 이렇게하려면 문자열 앞에 &nbsp;을 붙입니다. 그러나 jQuery는 어떤 이유로 든 HTML을 두 번 인코딩하여 &amp;nbsp;으로 인코딩 한 것 같습니다. 나는이 문제를 방지하고 어떻게 사용합니까 (비 분리 공백 문자가 브라우저에 표시되도록 즉) a는 &nbsp; 문자 :문자열을 이중 html로 인코딩하지 못하도록 jQuery 금지

var text = ''; 
var i; 

for (i = 0; i < level; i++) { 
    text += '&nbsp;'; 
} 
text += el.text(); 

if (el.hasClass('noclick')) { 
    $('<optgroup />', { 
     'label' : text 
    }).appendTo('#menu select'); 
} 
else { 
    $('<option />', { 
     'value' : el.attr('href'), 
     'text' : text 
    }).appendTo('#menu select'); 
} 

여기 내 jsFiddle을합니다.

답변

3

&nbsp; 대신에 \u00A0 (줄 바꿈 문자가 아닌 문자)을 사용해보십시오.

+0

예,이 완벽하게 작동합니다. 감사. – Mike

2

당신은 \xA0와 자바 스크립트 스크립트에서 문자가 아닌 휴식 공간 문자를 삽입 할 수 있습니다

text += '\xA0'; 
관련 문제