1

私が最終的にやりたいことは、既知のクラス名を持つ div 内のリンクを見つけて変更することです。リンクのコンテンツを適切に取得することに固執しており、自分の間違いを理解できません。getElementsByClassName と getElementsByTagName を使用すると、どちらも別々に機能するように見えましたが、一緒に使用すると機能しません。私はこれまで jquery を使用したことがないため、その方法を使用することに不安を感じています。

コードは次のとおりです。

<div class="test">
<a href="http://www.google.com">LINK</a></div>
<button onclick="myFunction()">Test it</button>

<script>
function myFunction()
{
var x=document.getElementsByClassName("test");
x.getElementsByTagName("a")[0].innerHTML="Hello World";
document.write(x[0]);
};

</script>
4

2 に答える 2

9

準拠しているブラウザでは、次のように簡単に使用できますdocument.querySelector()

var x = document.querySelector('.test > a');
x.innerHTML = 'Hello world';

document.querySelectornodeList/collection ( getElementsByTagName()andによって返される) ではなく、単一の要素 (唯一の要素、または複数の要素の最初の要素) を返しgetElementsByClassName()ます。

ちなみに、jQueryでは:

$('.test > a').html('Hello world'); // sets the innerHTML of the returned elements 

または:

$('.test > a').text('Hello world'); // sets the text of the returned elements 
于 2013-10-31T20:21:16.247 に答える
0

次のようにクエリ セレクタ構文を使用します。

var x = document.querySelector('div.classname > p');

これにより、<p>内のすべての要素が生成されますdiv.classname

于 2013-12-09T22:26:41.697 に答える