にアンカーが1 つvideo-quality
div
しかないと仮定すると、それほど遠くありません。
var vid_id=document.getElementById('video-quality');
var anchor=vid_id.getElementsByTagName('a');
anchor[0].innerHTML="High Quality";
// ^^^-- change here
(IE7以前をサポートする必要がない場合は、より短い方法があります。詳細については、 Davidの回答を参照してください。)
キーは名前にありましたgetElementsByTagName
(複数形に注意してください)。NodeList
要素ではなくを返します。ANodeList
は (ショッキングなことに!) 一致するノードのリストです。この場合、一致するelementsです。innerHTML
は個々の要素のプロパティであるためNodeList
、特定の要素にアクセスするには にインデックスを付ける必要があります。上記のコードは、一致する要素が少なくとも 1 つあると想定し、その HTML を更新します。防御力を高めたい場合:
var vid_id=document.getElementById('video-quality');
var anchors=vid_id.getElementsByTagName('a');
if (anchors[0]) {
anchors[0].innerHTML="High Quality";
}
これにより、一致するアンカーがない可能性が考慮されます。
はアンカーの子孫であるspan
ため、これを行うことで要素を削除していることに注意してください。span
それを避けたい場合span
は、アンカーの子孫として要素を探してくださいdiv
.
FWIW、jQuery、YUI、Closure、または他のいくつかの. それらは多くのユーティリティ機能を提供し、いくつかのブラウザーの違いをスムーズにします。しかし、DOM を直接使用したい場合は、それも問題ありません。