2014-02-25 2 views
0

JQuery를 사용하여 li 태그에 라디오 버튼을 추가 할 때이 두 명령문의 차이점은 무엇입니까? 의 요소를 HTML 코드를 검사에도 HTML 페이지의 라디오 버튼 옆에 텍스트를 표시하지 않습니다Jquery를 사용하여 정렬되지 않은 목록에 라디오 버튼 추가하기

var inputText = $("<input />", {"type":"radio", "name":"choices", "value":choices[i],  "text":choices[i]});' 

var inputText =$("<li />").html('<input type="radio" name="choices" value="'+choices[i]+'">' + choices[i] + '</input>'); 

전자는 반면, 후자의 표시 제대로 맞습니다. 전 클리너를 사용하기 때문에 이전 구문을 선호하지만 제대로 작동하지 않습니다.

답변

1

input 요소에 텍스트를 포함 할 수 없습니다. 당신이 the spec에서보고있는 경우가 표시됩니다

시작 태그 : 필요 함, 종료 태그 : 첫 번째 예를 들어, JQuery와에

이 입력 태그의 내부 텍스트를 배치 금지 된, 이는 브라우저가 유효하지 않으므로 표시되지 않습니다. 이런 식으로 뭔가 : 2 예에서

<input>text here</input> 

, 당신이 잘못된 만드는 시도를했다하더라도, 그것은이 변환됩니다 :

<input> 
text here 

당신이 그것을 검사하는 경우가 텍스트 밖에 볼 수 따라서 입력이 표시됩니다.

은 정말, 두 가지 접근 방식은 두 번째는 기술적으로 작동에도 불구하고, 종료 태그는 중단되어야한다, 잘못 : 제임스와

var inputText =$("<li />").html('<input type="radio" name="choices" value="'+choices[i]+'">' + choices[i]); 
0

. 또한 : 첫 번째 예에서 구문을 유지하려는 경우, 당신이 사용할 수있는 것 같아요 : 또한 당신은뿐만 아니라 텍스트 라벨을 클릭 할 수있는 좋은 label 요소에 입력을 래핑

$('<label />').append($("<input />", {"type":"radio", "name":"choices", "value":"foo" }).after('foo')) 

.

관련 문제