2012-11-25 6 views
-7

이것은 무엇입니까 : '+ 변수 +'? 나는이 작동하지 않는 이유 ... 난 그냥'+ 변수 +'는 무엇을 의미합니까?

value= window_value 
img id= w+window_value 

를 작성하고를 사용하는 경우 실제로

$('#story_pages').append('<div><button value="'+window_value+'" onclick= "reload_to_canvas(this.value)" ><img id="w'+window_value+'", src=white_data_URL, width="100px", height="100px"/> </button></div>'); 

:

나는 jQuery를 일부 DOM 요소를 추가하는 방법을 추가 사용 선택기 $ ('# (w + window_value)') 요소를 찾으십시오. 실패해야합니다.
이 연산자는 무엇입니까? '+ variable +'
왜 우리는 이상한 표기법 ''+ variable + ' "을 사용해야합니까?
언제이 표기법을 사용해야합니까?

답변

6

이 연산자는 무엇인가? '+ variable +'

이는 운영자가 아닙니다.

'

는 연결 연산자이다

+ 리터럴 스트링을 종료한다.

variable

+ 변수 문자열 인 다른 연결 연산자이다.

'은 새로운 문자열 리터럴을 시작합니다.

왜 우리는 이상한 표기법 "'+variable+'"을 사용해야합니까?

두 문자열 리터럴의 데이터에는 " 문자가 있습니다.

목적은이를 구성하는 것입니다

'<element attribute="value">' 

값이 문자열 연결하여 코드에서 변수

var myValue = "value"; 
'<element attribute="' + value + '">' 

생성 코드를 항상 유지하는 것이 상대적으로 어렵다 추한 코드를 제공합니다. 나는 더 자세한 접근 방식으로 문제를 접근하는 것 :

var content = $("<div>"); 
var button = $("<button>"); 
button.val(window_value); 
button.on('click', function() { reload_to_canvas(this.value); }); 
var img = $('<img>'); 
img.attr('id', 'w' + window_value); 
img.attr('src', 'white_data_URL'); 
// width and height can be handled in CSS 
button.append(img) 
content.append(button) 
$('#story_pages').append(content) 
+1

+1 다른 접근법 (이점을 추가했습니다. 예를 들어, 몇 가지 추가 조건문을 쉽게 넣을 수 있으며, 문자열 처리가 가능한 클릭 대신 클로저를 사용할 수 있습니다) – Thilo

+0

@Quentin Thanks. 그러나 value = window_value가 window_value의 내용을 가져올 수있는 이유는 무엇입니까? 이 작업을 수행하기 위해 연결 연산자를 사용해야합니다. – Stallman

+0

"값 = window_value가 window_value의 내용을 가져올 수있는 이유는 무엇입니까?" - 그럴 수 없습니다. 왜냐하면'window_value'는 문자열 리터럴에 문자가 될 것이고 변수 이름이 아니기 때문입니다. 그래서 문자열을 연결하거나 DOM을 사용해야합니다. – Quentin

0

즉 문자열이 변수와 연결됨을 의미합니다.

1

이것은 변수의 데이터를 사용하여 문자열을 동적으로 구성합니다.

var x = "World"; 
var text = "Hello " + x + ", how are you?"; 

문자열의 리터럴 부분은 작은 따옴표 나 큰 따옴표로 묶을 수 있습니다. 각각은 똑같은 일을하지만 문자열 자체에 따옴표가 포함되어 있으면 둘 중 하나가 더 편리합니다.

var text = 'Hello, "' + x + '", how are you?'; // double quotes inside 
var phrase = "Hello, '" + x + "', how are you?"; // single quotes inside 

따옴표가 필요합니다. 구문 하이라이팅 (여기 Stackoverflow와 같은)을 사용하면이 작업을보다 쉽게 ​​수행 할 수 있습니다.

문자열 안에 두 가지 종류의 따옴표가 필요한 경우 백 슬래시로 이스케이프 처리해야합니다.

var lotsOfQuotes = ' "Gosh, O\'Neill, what have you done", he said. '; 
+0

당신이 잘못 쉼표 구문 오류가 있습니다 ' "+ X +,"' – Popnoodles

+0

@popnoodles : 죄송합니다, 감사합니다. 바라기를 바래. – Thilo

+0

@Thilo 감사합니다. – Stallman