412 Stimmen

Kann ich ein benutzerdefiniertes Attribut zu einem HTML-Tag hinzufügen?

Kann ich ein benutzerdefiniertes Attribut zu einem HTML-Tag wie dem folgenden hinzufügen?

<tag myAttri="myVal" />

4voto

Ajinkya Badave Punkte 49

Ja, Sie können die data-* Attribut. Die Website data-* Attribut wird verwendet, um benutzerdefinierte Daten zu speichern, die der Seite oder Anwendung vorbehalten sind.

<ul>
    <li data-pageNumber="1"> 1 </li>
    <li data-pageNumber="2"> 2 </li>  
    <li data-pageNumber="3"> 3 </li>  
</ul

4voto

Erick Boileau Punkte 474

Data-any verwenden, ich verwende sie häufig

<aside data-area="asidetop" data-type="responsive" class="top">

4voto

kenorb Punkte 134883

Hier ist das Beispiel:

document.getElementsByTagName("html").foo="bar"

Hier ist ein weiteres Beispiel, wie man benutzerdefinierte Attribute in das Body-Tag-Element einfügt:

document.getElementsByTagName('body')[0].dataset.attr1 = "foo";
document.getElementsByTagName('body')[0].dataset.attr2 = "bar";

Lesen Sie dann das Attribut von:

attr1 = document.getElementsByTagName('body')[0].dataset.attr1
attr2 = document.getElementsByTagName('body')[0].dataset.attr2

Sie können den obigen Code in Konsole in DevTools, z.B.

JS Console, DevTools in Chrome

3voto

Abdulbasit Punkte 309

Nun! Sie können tatsächlich eine Reihe von benutzerdefinierten HTML-Attributen erstellen, indem Sie die Datenattribute in das verkleiden, was Sie eigentlich wollen.

z. B.

[attribute='value']{
color:red;
}

<span attribute="value" >hello world</span>

Es funktioniert anscheinend, aber das würde Ihr Dokument ungültig machen, es gibt keine Notwendigkeit der Verwendung von JScript für Sie, um benutzerdefinierte Attribute oder sogar Elemente, wenn Sie zu haben, müssen Sie nur Ihre neue formuliert (benutzerdefinierte) Attribute genauso behandeln, wie Sie Ihre "Daten"-Attribut behandeln

Erinnern Sie sich an "ungültig" bedeutet gar nichts. Das Dokument wird jederzeit problemlos geladen. und einige Browser würden Ihr Dokument nur durch das Vorhandensein von DOCTYPE..... validieren, Sie wissen schon, was ich meine.

1voto

CAtoOH Punkte 71

Ein anderer Ansatz, der sauber ist und dafür sorgt, dass das Dokument gültig bleibt, ist die Verkettung der gewünschten Daten in einem anderen Tag, z. B. id, und dann die Verwendung von split, um die gewünschten Daten zu entnehmen, wenn Sie sie brauchen.

<html>
<script>
  function demonstrate(){
    var x = document.getElementById("example data").querySelectorAll("input");
    console.log(x);
    for(i=0;i<x.length;i++){
      var line_to_illustrate = x[i].id  + ":" + document.getElementById ( x[i].id ).value;
      //concatenated values
      console.log("this is all together: " + line_to_illustrate); 
      //split values
      var split_line_to_illustrate = line_to_illustrate.split(":");
      for(j=0;j<split_line_to_illustrate.length;j++){
        console.log("item " + j+ " is: " + split_line_to_illustrate[j]);
      }      
    }
  }
</script> 

<body>

<div id="example data">
  <!-- consider the id values representing a 'from-to' relationship -->
  <input id="1:2" type="number" name="quantity" min="0" max="9" value="2">
  <input id="1:4" type="number" name="quantity" min="0" max="9" value="1">
  <input id="3:6" type="number" name="quantity" min="0" max="9" value="5">  
</div>

<input type="button" name="" id="?" value="show me" onclick="demonstrate()"/>

</body>
</html>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X