2014-03-04 5 views
-1

나는 동적으로 테이블을 아약스 성공으로 생성하고 각 테이블에 ID를 부여합니다. 이 ID는 제품 모델의 번호와 같습니다. 어떤에 제대로 ID를 생성하지 않는 때문에 모델이 'MU-1 SLD G'의 경우, 동적 테이블이 <table id="MU-1" g="" sld="">jquery에 공백이 포함 된 ID와 관련된 문제가 있습니까?

모양처럼

그러나 많은 경우 제품 모델 번호에

는 공백이 포함되어 어떻게 이 상황을 다루기 위해서?

+2

동안 _ – gulshanm01

+2

충분하지 컨텍스트 정보와 공간을 대체 할 수있는 동적 ID를 생성 ...하지만 가장 좋은 방법은 단지 선택의 기호로 공간을 대체하는 것입니다. – Christoph

+0

코드는 어디에 있습니까? 코드를 추가하십시오. 왜냐하면 그것은 나에게 중독 적이기 때문입니다. 가까운 표를 던지십시오. – Jai

답변

2

ID는 공백을 포함 할 수 없습니다.

테이블 내용을 생성 할 때 공백을 "-"로 바꾸는 바꾸기 기능을 사용하십시오. 서버에서 수신 한 데이터에서 테이블 행을 참조 할 때 동일한 기능을 사용하여 찾을 유효한 ID를 생성하십시오.

이 수행하는 기능의 간단한 예 : 콘텐츠를 생성 할 때, Ajax 요청에서 오는 모든 데이터 반복 그래서 기본적

function replaceAllSpacesWithLines(string) { 
    return string.replace(/ /g, '-'); 
} 

- 다른 가정이 배열의 어떤 종류와 JSON 응답 인 요소에 대해이 함수를 사용하여 테이블 행을 만듭니다. 더 쉽게 참조 할 수 있도록 행의 데이터 속성을 사용하여 필요할 때를 대비하여 원본 ID의 값을 유지할 수도 있습니다. 키 당신이 끝낼 수 있었다 "1 일부 KEY"가있는 테이블의 행에 대해

:

<tr data-id='SOME KEY 1' id='SOME-KEY-1'> ... data ... </tr> 

이 방법은 요소를 클릭 할 때, 실제 ID에 대한 데이터 ID를 확인하실 수 있습니다 논리 데이터에서 행을 선택할 때 ID를 재생성하거나 단순히 dom에 특정 데이터 ID가있는 행을 쿼리 할 수 ​​있습니다.

난이 도움이되기를 바랍니다 :)

1

특정 요소에 CSS 선택기를 쓸 수 없다면 대체 방법을 통해 CSS 선택기를 가져 와서 요소를 jQuery로 직접 전달할 수 있습니다.

http://jsfiddle.net/cvWt5/

<div id="foo bar">Hello</div> 

그리고 JS에서 :

var element = document.getElementById("foo bar"); 
jQuery(element).css({ color: "red" }); 

그러나, ID가 공백이 not valid HTML5되어 있기 때문에, 정상적으로 예를 들어, i을 포함 ID가 상기 getElementById 방법을 사용 ID에 공백을 사용하지 마십시오. 더 나은 해결 방법은 공백 문자를 밑줄 (_)과 같이 공백이 아닌 문자로 변경하거나 camelCase 식별자를 대신 사용하는 것입니다.

+0

을 고려해야한다. ID는 공백 문자를 포함해서는 안된다. 그래서 당신은 어떤 상황에서도 그들을 사용해서는 안됩니다! http://www.w3.org/TR/2011/WD-html5-20110525/elements.html # the-id-attribute – Christoph

+0

그래, 내가 게시 한 링크와 거의 같다. – Douglas

+0

그런데 왜 그런 대답을 쓰나요? 초심자는 초심자가 초심자가되기를 권장합니다. 내가 코멘트를 썼을 때, 당신의 편집은 아직 존재하지 않습니다. (나는 편집 후 몇 분 후에 그것을 썼습니다. 그러나 나는 코멘트를 쓸 때까지 대답을 새로 고치지 않았습니다). – Christoph

관련 문제