사이의 차이는 무엇입니까 id
및name
속성 ? 둘 다 식별자를 제공하는 동일한 목적으로 사용됩니다.
어떤 이유로 든 두 가지를 모두 사용 해야하는지 또는 권장하지 않는지 (HTML 형식과 관련하여) 알고 싶습니다.
답변
name
양식 제출에 데이터를 보낼 때 속성이 사용됩니다. 다른 컨트롤은 다르게 응답합니다. 예를 들어, id
속성은 다르지만 동일한 라디오 버튼이 여러 개있을 수 있습니다 name
. 제출되면 응답에 하나의 값 (선택한 단일 선택 단추) 만 있습니다.
물론, 그것보다 더 많은 것이 있지만, 올바른 방향으로 생각하게 할 것입니다.
답변
양식 제출시 발생 하는 또는 호출에 사용 된 식별자이므로 name
양식 제어 (예 : <input>
및 <select>
)에 대한 속성을 사용하십시오 .POST
GET
id
CSS, JavaScript 또는 조각 식별자 로 특정 HTML 요소를 처리해야 할 때마다 속성을 사용하십시오 . 이름별로 요소를 검색 할 수도 있지만 ID로 검색하는 것이 더 간단하고 안정적 입니다.
답변
다음은 간단한 요약입니다.
-
id
JavaScript를 통해 또는 CSS로 스타일이 지정된 Document Object Model을 통해 HTML 요소 를 식별하는 데 사용됩니다 .id
페이지 내에서 고유해야합니다. -
name
form 요소에 해당 하며 서버에 다시 게시 된 내용을 식별합니다 .
답변
이것을 참조하십시오 http://mindprod.com/jgloss/htmlforms.html#IDVSNAME
차이점이 뭐야? 짧은 대답은 둘 다 사용하고 걱정하지 마십시오. 그러나이 구피를 이해하려면 스키니가 있습니다.
id =는 다음과 같은 대상으로 사용됩니다
<some-element id="XXX"></some-element>
.<a href="#XXX"
.name =은 양식에서 제출을 눌렀을 때 HTTP (HyperText Transfer Protocol) GET 또는 POST로 서버로 보내는 메시지의 필드 레이블을 지정하는 데에도 사용됩니다.
id =는 JavaScript 및 Java DOM (Document Object Model)에서 사용할 필드에 레이블을 지정합니다. name =의 이름은 양식 내에서 고유해야합니다. id =의 이름은 전체 문서 내에서 고유해야합니다.
서버가 동일한 문서의 다양한 양식 또는 위의 예와 동일한 양식의 다양한 단일 선택 단추에서 동일한 이름을 기대하기 때문에 name = 및 id = 이름이 다른 경우가 있습니다. id =는 고유해야합니다. 이름 =이 아니어야합니다.
JavaScript에는 고유 한 이름이 필요했지만 고유 한 name = 이름이없는 문서가 너무 많았 기 때문에 W3 사람들은 고유해야하는 id 태그를 발명했습니다. 불행히도 오래된 브라우저는 그것을 이해하지 못했습니다. 따라서 양식에 두 가지 명명 체계가 모두 필요합니다.
참고 : <a>
HTML5 에서는 일부 태그의 속성 “name” 이 지원되지 않습니다.
답변
내가 생각하고 사용하는 방법은 간단합니다.
신분증 는 CSS 및 JavaScript / jQuery에 사용됩니다 (페이지에서 고유해야 함)
name 은 HTML을 통해 양식을 제출할 때 PHP에서 양식 처리에 사용됩니다 (양식에서 고유해야 함-어느 정도 아래 폴 의 의견 참조).
답변
ID 태그-CSS에서 사용되며 고유 한 div, span 또는 기타 요소 인스턴스를 . Javascript DOM 모델 내에 표시되어 다양한 함수 호출로 액세스 할 수 있습니다.
필드의 이름 태그 -PHP / 서버 측 처리로 전달하려는 배열을 수행하지 않는 한 형식 마다 고유 합니다. Javascript를 통해 이름으로 액세스 할 수 있지만 DOM에 노드로 표시되지 않거나 일부 제한 사항이 적용될 수 있다고 생각합니다 (예를 들어 올바르게 호출하면 .innerHTML을 사용할 수 없음).
답변
일반적으로 name은 항상 id로 대체되는 것으로 가정합니다 . 이것은 어느 정도 사실이지만 실제로는 양식 필드와 프레임 이름 에는 해당 되지 않습니다 . 예를 들어, 양식 요소의 name
경우이 속성을 사용하여 서버 측 프로그램으로 보낼 이름-값 쌍을 결정하고 제거해서는 안됩니다. Browsers do not use id in that manner
. 안전을 위해 양식 요소에 name 및 id 속성을 사용할 수 있습니다. 따라서 다음과 같이 작성합니다.
<form id="myForm" name="myForm">
<input type="text" id="userName" name="userName" />
</form>
호환성을 보장하기 위해 정의 된 이름과 id 속성 값이 일치하는 것이 좋습니다. 그러나 일부 태그, 특히 단일 선택 단추에는 고유하지 않은 이름 값이 있어야하지만 고유 한 id 값이 필요합니다. 다시 한 번, 이것은 id가 단순히 이름을 대체하는 것이 아니라는 것을 의미해야합니다. 그것들은 목적이 다릅니다. 또한 구식 접근 방식을 할인하지 마십시오. 현대 라이브러리를 자세히 살펴보면 때때로 성능 및 편의 목적으로 사용되는 구문 스타일을 보여줍니다. 목표는 항상 호환성을 선호해야합니다.
이제 대부분의 요소에서 이름 속성은 더 많은 유비쿼터스 id 속성을 위해 더 이상 사용되지 않습니다. 그러나, 일부 경우에, 특히 필드를 형성한다 ( <button>
, <input>
, <select>
, 및 <textarea>
)는 양식 제출의 이름 – 값 쌍을 설정해야하기 때문에 계속의 name 속성의 삶. 또한 프레임 및 링크와 같은 일부 요소는 이름 속성을 계속 사용할 수 있습니다. 이름 속성은 이러한 요소를 이름으로 검색하는 데 유용하기 때문입니다.
아이디와 이름 사이에는 분명한 차이가 있습니다. 종종 이름이 계속되면 값을 동일하게 설정할 수 있습니다. 그러나 id는 고유해야하며 경우에 따라 라디오 버튼을 생각해서는 안됩니다. 안타깝게도 마크 업 유효성 검사에 의해 파악 된 id 값의 고유성은 그다지 일관성이 없습니다. 브라우저에서의 CSS 구현은 id 값을 공유하는 객체의 스타일을 지정합니다. 따라서 런타임까지 JavaScript에 영향을 줄 수있는 마크 업 또는 스타일 오류를 포착하지 못할 수 있습니다.
이 책은 JavaScript- The Complete Reference by Thomas-Powell