2011-01-10 4 views
0
나는 갑자기, 내가이 일을하려고 할 때, 내 jQuery를 사업을 신경 쓰지 함께가는

: 내 브라우저을 닫을 때까지이상한 jQuery를 오류

var myVariable = 'some-id-here'; 
$('#' + myVariable).addClass('some-class'); 

모든 벌금과 멋쟁이했다. 내가 페이지를 재개 한 후, jQuery를이 이상한 오류가 발생했습니다 :이와 함께 두 번째 줄을 교체하고 작동이 할 수 있었다

Uncaught Syntax error, unrecognized expression: # 

을,하지만 난 첫 번째 부분은 작동하지 않았다 왜 폐쇄 후 호기심과 내 브라우저를 다시 열었습니다. myVariable가 비어 있지 않은 경우 해당 ID를 가진 요소가 존재하지 않는 경우에도

$(document.getElementById(myVariable)).addClass('current'); 
+0

실패하면 myVariable의 값은 무엇입니까? –

+0

이것을 재현 할 수 있습니까? 문제의 라인이 1000 % 확실합니까? 'myVariable'은 당신이 위의 방식대로 문자 그대로 선언합니까? –

+0

변수가 빈 문자열로 평가되어 실제로 $ ('#')' –

답변

1

myVariable을 정의 할 때, #과 id의 시작 부분이있는 것처럼 들립니다. $(document.getElementById(myVariable)).addClass('current');

난 : - 이것은 또한 당신이 당신의 선택으로 이것을 사용하는 경우는 점점 정확한 오류가 발생합니다이 작업을 대신 않습니다 사용하는 이유에 문제가 있는지

$('##some-id-here').addClass('some-class'); 

을, 그것을 설명 할 것 브라우저를 닫으면 왜 이런 영향을 미치는지 확신 할 수 없습니다. 어쩌면 당신은 브라우저를 다시 열었을 때만 반영된듯한 html을 변경했을 것입니다.

+0

아, 네. 그게 틀림 없어. 해시 태그가 문자열에 이미 있습니다. 나는'document.getElementById()'가 해쉬를 잘 처리한다고 생각한다. 아직도 브라우저 재시작 문제는 확실하지 않지만 이중 해시 태그는 그 것이다. – Kerrick

0

이 문제없이 작동합니다.

1

$('#') throw "잡히지 않은 구문 오류, 인식 할 수없는 표현 : #" in jQuery. 따라서 문제는 거의 확실하게 myVariable이 비어 있습니다.

+0

나는 너무 생각했다. 그러나 나는 console.log()로 그것을 꺼 냈고, 확실히 가치가 있었다. 그것은 머리를 깎는 사람입니다. – Kerrick

+0

질문에 붙여 넣은 것과 유사한 두 줄 예제를 사용하여 문제를 재현 할 수 있습니까? (나는 추측하고있다) – Emmett

+0

나는 축소 된 테스트 케이스를 할 수없는 것처럼 보일 수 있지만, 이상한 것은 오류가 아니다 - 그것은 내가 몇 번 시도해도 오류가 발생하지 않는다는 것을 의미한다. 브라우저. – Kerrick

0

코드를 다른 곳에서 사용합니까? 어떤 줄은?