Programing

html 요소에 여러 개의 ID가있을 수 있습니까?

lottogame 2020. 3. 19. 08:16
반응형

html 요소에 여러 개의 ID가있을 수 있습니까?


ID는 HTML / XHTML 페이지 내에서 고유해야한다는 것을 이해합니다.

내 질문은 주어진 요소에 대해 여러 ID를 할당 할 수 있습니까?

<div id="nested_element_123 task_123"></div>

나는 단순히 수업을 사용하여 쉬운 해결책을 가지고 있음을 알고 있습니다. 이 방식으로 ID를 사용하는 것에 대해 궁금합니다.


보내는 사람 번호 XHTML 1.0 규격

XML에서 조각 식별자는 ID 유형이며 요소 당 하나의 ID 유형 속성 만있을 수 있습니다. 따라서 XHTML 1.0에서 id 속성은 ID 유형으로 정의됩니다. XHTML 1.0 문서가 잘 구조화 된 XML 문서가되도록하려면 XHTML 1.0 문서는 위에 나열된 요소에서 조각 식별자를 정의 할 때 반드시 id 속성을 사용해야합니다. XHTML 문서를 미디어 유형 text / html로 제공 할 때 이러한 앵커가 이전 버전과 호환되는지 확인하는 방법에 대한 자세한 내용은 HTML 호환성 지침을 참조하십시오.


다른 사람들의 말과 달리 정답은 예입니다.

사양 선택기 이것에 대해 매우 분명하다 :

요소에 여러 개의 ID 속성이있는 경우 모든 요소는 ID 선택기의 목적을 위해 해당 요소의 ID로 처리되어야합니다. 이러한 상황은 xml : id, DOM3 Core, XML DTD 및 네임 스페이스 별 혼합을 사용하여 도달 할 수 있습니다. 지식.


편집하다

명확히하기 위해 : 예, XHTML 요소는 여러 개의 id를 가질 수 있습니다.

<p id="foo" xml:id="bar">

그러나 id공백으로 구분 된 목록을 사용하여 동일한 속성에 여러 ID를 할당 할 수 없습니다.


나의 이해는 항상 다음과 같습니다.

  • ID는 일회용 이며 하나의 요소에만 적용됩니다 ...

    • 각각은 하나의 단일 요소에 대한 유일한 식별자로 간주됩니다 .
  • 수업은 두 번 이상 사용할 수 있습니다 ...

    • 그러므로 그것들은 하나 이상의 요소에 적용될 수 있으며, 유사하지만 다른 요소마다 하나 이상의 클래스 (즉, 여러 클래스) 가있을 수 있습니다 .

아니요. HTML 4에 대한 w3c정의가 귀하의 질문을 명시 적으로 다루지 않는 것 같지만 name 및 id 속성정의 는 식별자에 공백이 없다고 말합니다.

ID 및 NAME 토큰은 문자 ([A-Za-z])로 시작해야하며 문자, 숫자 ([0-9]), 하이픈 ( "-"), 밑줄 ( "_") 뒤에 올 수 있습니다. , 콜론 ( ":") 및 마침표 ( ".")


아니요. 모든 DOM 요소에는 ID가 있으면 하나의 고유 한 ID가 있습니다. 다음과 같은 것을 사용하여 근사 할 수 있습니다.

<div id='enclosing_id_123'><span id='enclosed_id_123'></span></div>

그런 다음 탐색을 사용하여 원하는 것을 얻을 수 있습니다.

스타일을 적용하려는 경우 클래스 이름이 더 좋습니다.


요소 당 하나의 ID 만 가질 수 있지만 실제로 둘 이상의 클래스를 가질 수 있습니다. 그러나 여러 클래스 속성이 없으면 여러 클래스 값을 하나의 속성에 넣습니다.

<div id="foo" class="bar baz bax">

완벽하게 합법적입니다.


해당 경로를 따라 가려면 중첩 된 DIV를 사용해야합니다. 또한 가능하다면 document.getElementByID ()를 실행할 때 발생할 수있는 혼란을 상상해보십시오. ID가 여러 개인 경우 어떤 ID를 가져 옵니까?

약간 관련된 주제에서 DIV에 여러 클래스추가 할 수 있습니다 . 에서 Eric Myers 토론을보십시오.

http://meyerweb.com/eric/articles/webrev/199802a.html


단일 태그에 대해 여러 개의 ID를 가질 수는 없지만 일부 응용 프로그램에서 동일하게 취급되는 name속성과 id속성을 가진 태그를 보았습니다 .


http://www.w3.org/TR/REC-html40/struct/global.html#h-7.5.2

id 속성 은 요소에 고유 식별자를 할당합니다 (SGML 파서에서 확인할 수 있음).

ID 및 NAME 토큰은 문자 ([A-Za-z])로 시작해야하며 문자, 숫자 ([0-9]), 하이픈 ( "-"), 밑줄 ( "_") 뒤에 올 수 있습니다. , 콜론 ( ":") 및 마침표 ( ".")

따라서 "id"는 고유해야하며 공백을 포함 할 수 없습니다.


아니.

그렇게 말하면서, 당신이 그 일을 멈추게 할 것이 없습니다. 그러나 다양한 브라우저에서 일관되지 않은 동작이 발생합니다. 하지마 요소 당 1 개의 ID.

요소에 여러 개의 지정을하려면 클래스를 사용하십시오 (공백으로 구분).


Any ID assigned to a div element is unique.
However, you can assign multiple IDs "under", and not "to" a div element.
In that case, you have to represent those IDs as <span></span> IDs.

Say, you want two links in the same HTML page to point to the same div element in  the page.

The two different links
<p><a href="#exponentialEquationsCalculator">Exponential Equations</a></p>         

<p><a href="#logarithmicExpressionsCalculator"><Logarithmic Expressions</a></p>

Point to the same section of the page. 
<!-- Exponential / Logarithmic Equations Calculator -->
<div class="w3-container w3-card white w3-margin-bottom">      
   <span id="exponentialEquationsCalculator"></span>
   <span id="logarithmicEquationsCalculator"></span>
</div>

그것은 흥미롭지 만, 내가 아는 한 대답은 확실합니다. 중첩 된 ID가 필요한 이유를 알 수 없습니다. 일반적으로 동일한 중첩 된 ID를 가진 다른 요소와 교차하기 때문에 중첩 된 ID가 필요합니다. 당신이 아무 소용이 없다면, 당신은 여전히 ​​매우 작은 점이 있습니다.


나는 이것이 1 살이라는 것을 알고 있지만 나는 이것에 대해 궁금했고 다른 사람들이 여기서 길을 찾을 것이라고 확신합니다. 다른 사람들이 내 앞에서 말한 것처럼 간단한 대답은 '아니요'입니다. 요소는 하나 이상의 ID를 가질 수 없으며 페이지에서 ID를 두 번 이상 사용할 수 없습니다. 사용해보십시오 . 작동 하지 않는 것을 볼 수 있습니다 .

두 개의 다른 요소에 동일한 ID를 사용하는 것에 대한 tvanfosson의 답변에 대한 응답. 내가 아는 한 ID는 다른 태그에 연결되어 있는지 여부에 관계없이 페이지에서 한 번만 사용할 수 있습니다.

정의에 따르면 ID가 필요한 요소는 고유해야하지만 두 개의 ID가 필요한 경우 실제로 고유하지 않으며 대신 클래스가 필요합니다.


실제로 렌더링되는 것은 기술적으로 항상 브라우저마다 다르기 때문에 기술적으로 그렇습니다. 대부분의 브라우저는 가능한 한 최선을 다해 CSS 사양에 아무것도 없다는 것을 알고 있습니다. 다른 인터프리터가 들어가기 전에 브라우저로 전송되는 실제 html, css, javascript 코드 만 보증합니다.

그러나 일반적으로 테스트하는 모든 브라우저가 실제로 당신을 허용하지 않기 때문에 아니오라고 말합니다. 직접 확인해야 할 경우 다음을 .html 파일로 저장하고 주요 브라우저에서여십시오. javascript 함수에서 테스트 한 모든 브라우저에서 요소와 일치하지 않습니다. 그러나 id 태그에서 "hunkojunk"를 제거하면 모두 정상적으로 작동합니다. 샘플 코드

<html>
<head>
</head>
<body>
    <p id="hunkojunk1 hunkojunk2"></p>

<script type="text/javascript">
    document.getElementById('hunkojunk2').innerHTML = "JUNK JUNK JUNK JUNK JUNK JUNK";
</script>
</body>
</html>

클래스는 이것을 위해 특별히 만들어졌습니다. 여기에서 이해할 수있는 코드가 있습니다.

<html>
<head>
    <style type="text/css">
     .personal{
            height:100px;
            width: 100px;   

        }
    .fam{
            border: 2px solid #ccc;
        }   
    .x{
            background-color:#ccc;
        }   

    </style>
</head>
<body>

    <div class="personal fam x"></div>

</body> 
</html>

아니.

https://www.w3.org/TR/2011/WD-html5-20110525/elements.html#the-id-attribute

값은 공백 문자를 포함하지 않아야합니다.

id="a b"<-해당 VaLuE 에서 공백 문자를 찾으십시오 .

즉, 여러 ID를 스타일 지정할 수 있습니다 . 그러나 사양을 따르는 경우 대답은 '아니요'입니다.


나는 당신이 두 개의 ID를 가질 수 있다고 생각하지 않지만 가능해야합니다. 동일한 여권을 사용하는 두 사람과 같은 동일한 ID를 두 번 사용하는 것은 다른 경우입니다. 그러나 한 사람이 여러 개의 여권을 가질 수 있습니다. 한 명의 직원이 여러 기능을 수행 할 수있는 상황이 있기 때문에 이것을 찾고있었습니다. id = "sysadm teamcoordinator"가있는 "sysadm"과 "team coordinator"라고하면 다른 페이지에서 해당 항목을 참조 할 수있게해서 employee.html # sysadm과 employee.html # teamcoordinator가 같은 장소로 연결될 수 있습니다. 그렇지 않으면 sysadm이 sysadm으로 남아있는 동안 팀 코디네이터 기능을 대신 할 수 있습니다 ... 그런 다음 직원 .html 페이지의 ID 만 변경하면됩니다 ...하지만 내가 말한 것처럼 작동하지 않습니다 :(

참고 URL : https://stackoverflow.com/questions/192048/can-an-html-element-have-multiple-ids

반응형