2014-03-13 5 views
1

원하는 패딩이 제대로 연결되지 않았습니다. 즉, 공백이 나타나지 않습니다. 왜 보이지 않는지 확실하지 않고 몇 시간 동안 해결책을 제시하지 않고 코드를 수정했습니다.결과에 연결된 공백이 표시되지 않습니다.

var padWord = function(word){ 
    if(endsInPunctuation(word)){ 
     trueLength = (word.length)-1; 
    }else{ 
     trueLength = word.length; 
    } 
    switch(trueLength){ 
     case 1: 
      word = " " + word.fontcolor("red"); 
      break; 
     case 2: 
      word = " " + word.replaceAt(1, word.charAt(1), "red"); 
      break; 
     case 3: 
      word = " " + word.replaceAt(1, word.charAt(1), "red"); 
      break; 
+0

당신이 당신의 코드를 디버깅나요 어딘가에 일부'console.log' 문을 넣어 당신이 가지고있는 값을 참조하십시오 여기에

textShow.innerHTML = word; 

을이 변경? –

+0

이것은 HTML이 작동하는 유일한 방법입니다. 여러 공간을 하나의 공간으로 압축합니다. 이 문제를 해결하려면 각 공간 대신에 ' '을 사용하십시오. HTML이하는 이유에 대한 자세한 내용은 [HTML 파일의 여러 공백이 브라우저에서 단일 공백으로 나타나는 이유] (http://stackoverflow.com/questions/433493/why-do-multiple-spaces-in)를 참조하십시오. -an-html-file-show-up-as-the-browser로) –

답변

7

브라우저는 기본적으로 둘 이상의 공백 문자를 접습니다. 줄 바꿈하지 않는 공백 사용 &nbsp; 또는 css white-space:pre; 또는 html 태그 <pre>

2

문자열 연결에 문제가 없습니다. 공백 문자열에 추가됩니다. 문제는 어떻게 결과를 표시하는지에 있습니다. 대부분의 경우 내용 주위의 공백은 HTML 요소에서 축소됩니다. 이 문제를 해결할 수있는 몇 가지 방법이 있습니다.

  1. 사용 CSS는 CSS에이 라인을 추가하여 HTML 요소의 기본 동작을 오버라이드 (override) :

    #screen{ 
        ... 
        white-space: pre; 
    } 
    
  2. 가 표시됩니다 엔티티를 HTML로 공간을 변환합니다. ,

    textShow.innerHTML = word.replace(/\s+/, function(s) { 
        return s.replace(/\s/g, '&nbsp;'); 
    }); 
    
+0

공백을 제거하는 데 도움이되지만 빨간색으로 강조 표시된 문자는 제거됩니다. – leocreatini

+0

@LLCreatini가 수정되었습니다. –

관련 문제