Aşağıdaki gibi bir HTML etiketine özel bir özellik ekleyebilir miyim?
<tag myAttri="myVal" />
Aşağıdaki gibi bir HTML etiketine özel bir özellik ekleyebilir miyim?
<tag myAttri="myVal" />
Yanıtlar:
! DOCTYPE bildiriminizi (yani DTD) izin vermek için değiştirebilirsiniz, böylece [XML] belgesi hala geçerli olur:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
[
<!ATTLIST tag myAttri CDATA #IMPLIED>
]>
#IMPLIED
bunun isteğe bağlı bir özellik olduğu veya kullanabileceğiniz #REQUIRED
, vb. anlamına gelir .
Daha fazla bilgi DTD - Nitelikler .
<meta http-equiv="content-type" content="application/xhtml+xml" />
.
data-
.
İstediğiniz zaman öğelerinize özel özellikler ekleyebilirsiniz. Ancak bu, belgenizi geçersiz kılacaktır.
HTML 5'te, ön ekli özel veri özelliklerinidata-
kullanma olanağına sahip olacaksınız .
|
bir css'de izin verilmediğini söylüyor href
, ancak Google Fonts
Hayır, bu doğrulamayı bozacaktır.
HTML 5'te özel özellikler ekleyebilirsiniz / ekleyebilirsiniz. Bunun gibi bir şey:
<tag data-myAttri="myVal" />
JQuery data()
işlevi, rastgele verileri DOM öğeleriyle ilişkilendirmenize olanak tanır. İşte bir örnek .
HTML5'te: evet: data niteliğini kullanın .
<ul>
<li data-animal-type="bird">Owl</li>
<li data-animal-type="fish">Salmon</li>
<li data-animal-type="spider">Tarantula</li>
</ul>
Evet, sen, sen, söz kendisinde yaptım edebilirsiniz: <html myAttri="myVal"/>
.
var demo = document.getElementById("demo")
console.log(demo.dataset.myvar)
// or
alert(demo.dataset.myvar)
//this will show in console the value of myvar
<div id="demo" data-myvar="foo">anything</div>
Evet, bunu yapabilirsin!
Sonraki HTML
etikete sahip olmak :
<tag key="value"/>
Özelliklerine aşağıdakilerle erişebiliriz JavaScript
:
element.getAttribute('key'); // Getter
element.setAttribute('key', 'value'); // Setter
Element.setAttribute()
özelliği HTML
yoksa etikete yerleştirin. Yani, HTML
eğer onu ayarlayacaksanız , kodda bildirmeniz gerekmez JavaScript
.
key
: geçerli etiket için kullanılmamışken, özellik için istediğiniz herhangi bir ad olabilir.
value
: her zaman ihtiyacınız olanı içeren bir dize.
İşte örnek:
document.getElementsByTagName("html").foo="bar"
Gövde etiketi öğesine özel niteliklerin nasıl ayarlanacağına ilişkin başka bir örnek:
document.getElementsByTagName('body')[0].dataset.attr1 = "foo";
document.getElementsByTagName('body')[0].dataset.attr2 = "bar";
Ardından özelliği şu şekilde okuyun:
attr1 = document.getElementsByTagName('body')[0].dataset.attr1
attr2 = document.getElementsByTagName('body')[0].dataset.attr2
DevTools'ta Konsolda yukarıdaki kodu test edebilirsiniz , ör.
herhangi bir veri kullanın, onları çok kullanıyorum
<aside data-area="asidetop" data-type="responsive" class="top">
data-*
JavaScript'ten değerleri nasıl alırsınız ?
Temiz ve belgeyi geçerli tutacak başka bir yaklaşım, istediğiniz verileri başka bir etikete birleştirmek, örneğin id, sonra istediğinizi almak için split'i kullanmaktır.
<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>
Ekleyebilirsiniz, ancak bir satır JavaScript kodu da yazmanız gerekir,
document.createElement('tag');
her şeyin yerine oturduğundan emin olmak için. Internet Explorer demek istiyorum :)
<tag ...>
görünüşe göre yalnızca herhangi bir HTML etiketi anlamına gelir.
iyi! veri özniteliklerini gerçekte istediğiniz şekilde gizleyerek bir grup özel HTML özelliği oluşturabilirsiniz.
Örneğin.
[attribute='value']{
color:red;
}
<span attribute="value" >hello world</span>
Görünüşe göre çalışıyor, ancak belgenizi geçersiz kılar, özel niteliklere veya hatta öğelere sahip olmanız için JScript kullanmaya gerek yoktur, sadece yeni formüle edilmiş (özel) niteliklerinize aynı şekilde davranmanız gerekir. "data" özelliği
Unutmayın "geçersiz" hiçbir şey ifade etmez. Belge her zaman iyi yüklenir. ve bazı tarayıcılar belgenizi yalnızca DOCTYPE'ın varlığıyla doğrulardı ..... aslında ne demek istediğimi biliyorsunuz.
Bir özellik yerine JavaScript'ten istediğiniz değeri ayıklamak için böyle bir şey yapabilirsiniz:
<a href='#' class='click'>
<span style='display:none;'>value for JavaScript</span>some text
</a>
<input type="hidden" value="...">
. Bununla birlikte, gizli bir alana koyabileceğiniz verilerin aksine, çeşitli özelliklerde koyduğunuz veri türü arasındaki farkı göz önünde bulundurun. Bir meta veriyi korumak adına bir <span>
şeyi <a>
saklamak iyi bir hareket değildir. Sitenize özgü ve JS'ye (zarif bozulma, insanlar) çok bağlı olacaktır.