2012-04-04 5 views
0

누군가가 공백을 포함하는 문자열을 매개 변수로 자바 스크립트 함수에 전달할 수없는 이유를 설명 할 수 있습니까? 자바 스크립트가 공백을 포함하는 문자열에 첫 번째 공백에서 잘리는가?

여기에이 문제를 보여줍니다 내 코드입니다, 그냥 링크 위에 마우스를 올려 그리고 당신은 "마리오"제목으로 표시되지 않고 볼 "마리오와 루이지"

var href='mario and luigi', subject=$('div').data('subject'), 
size=$('div').data('reviewid'), 
     src=$('div').data('itemid'), className='mini'; 

     function formatLink(href, subject, src, size, className){    
       if(size=='mini') 
       size='height:25px; width:25px;'; 
       else if(size=='medium') 
       size='height:40px; width:40px;'; 
       else if(size=='large') 
       size='height:125px; width:125px;'; 
       else if(size=='xlarge') 
       size='height:180px; width:260px;';     
      return '<a class="pjax" href='+href+' title='+subject+'><span class='+className+'><span class="image-wrap" style="position:relative; display:inline-block; background:url('+src+') no-repeat center center;'+size+'" ><img style="opacity:0;"></span></span><span title='+subject+'>'+subject+'</span></a>'; 
     } 
var link=formatLink(href, subject, src, size, className); 
$('div').html(link); 
​ 

답변

6

title='+subject+'title="'+subject+'"을해야합니다 . 속성을 인용해야합니다. 그렇지 않으면 마크 업이 유효하지 않습니다. 보너스로

, 여기에 있습니다 파이썬의 format 기능의 아날로그의이 같은 것들을 훨씬 쉽게 :

format = function(str, params) { 
    return str.replace(/\{(\w+)\}/g, function($0, $1) { return params[$1] }); 
} 

사용법 :

html = format(
    '<a class="pjax" href="{href}" title="{subject}"><span class="{className}"... etc', 
    { 
     href: "some_link", 
     subject: "mario and luigi", 
     className: "foobar" 
    } 
) 
+0

끝내 감사합니다. thg435! –

4
return '<a class="pjax" href='+href+' title='+subject+'><span 

당신은 HREF 따옴표가없는 속성을 사용하면 HTML이 href=mario and luigi이됩니다. 따옴표를 추가하여 문제를 해결하십시오 (제목과 동일한 작업을 수행하십시오) :

+0

안녕하세요 John, 감사합니다! 문제 해결됨! –

관련 문제