これは私にとっては機能していません。機能していないということは、ラベルに何も表示されないということです。
document.getElementById('clubname').label.style.display = 'none';
私は何が間違っているのですか?
これは私にとっては機能していません。機能していないということは、ラベルに何も表示されないということです。
document.getElementById('clubname').label.style.display = 'none';
私は何が間違っているのですか?
ラベル付け可能な要素には複数のラベルを付けることができるため、要素にはlabels
プロパティではなくプロパティがありlabel
ます。
しかし、現在、このプロパティのブラウザサポートのレベルはわかりません。
あなたが持っているものを解読するには:
document.getElementById('clubname')
ID「clubname」の要素を返そうとします。そのような要素が存在しない場合は、 を返しnull
ます。
.label
label
上記で返されたオブジェクトのプロパティにアクセスしようとします。だった場合null
、エラーがスローされます。
.style
style
上記で返されたもののプロパティにアクセスしようとします。null
その値がorのようなオブジェクトではない (またはオブジェクトに変換できない) 場合undefined
、エラーがスローされます。
.display = 'none';
display
は、以前に返されたオブジェクトのプロパティにアクセスするか割り当てて、値 を割り当てます'none'
。
HTML5 には、関連付けられたラベルの NodeList を参照するプロパティを持つ、ラベル付け可能な要素のカテゴリがあります。labels
したがって、上記が行うことは (エラーなしで完了し、関連するラベル NodeList の 1 つのメンバーにアクセスした場合...labels[0].style...
)、関連するラベルを非表示にすることです。要素がラベルの子である場合 (よくあることですが)、要素も非表示になります。
しかし、このlabels
プロパティはまだ広く実装されていません。
それは役に立ちますか?
とにかく、あなたが望むことを行うためのより安全な方法は次のとおりです。
// First attempt to get a reference to the element
var el = document.getElementById('clubname');
// If the above returned an element, and it has a labels property
// and that property has at least one member
if (el && el.labels && el.labels[0]) {
// Safe to assume el.labels[0] is a DOM element, so
// mess with its style object
el.labels[0].style.display = 'none';