2017-10-16 23 views
-1

私は別のgetlementbyIDnameなどについて読んでいますが、問題が残っています。私のDOMツリーは次のようになります。私は、タグ名の用語changed="true"を取得しようとしていますが、私はgetElementsByTagNameをしようとすると、それは動作しませんJavaScriptでDOM要素を取得する

<suggestion> 
    <term>Some text here</term> 
    <term changed="true"> Some text here </term> 
</suggestion> 

。私もquerySelectorAll("term changed=true")で試しましたが、それでも動作しません。私は特にこの要素を取得し、することはできませんどのように

時には、時にはそれは、第三第四または第九の要素であるかもしれないので、私は2番目の要素を取得しようとしていないのですつ以上の<term>があるかもしれません...

他の要素はちょうど<term>ですか?

+1

:あなたはjQueryのを使用している場合

はまた、あなたは常にこのような何かを探しでしょうか? – TKoL

+0

querySelectorAll( "term changed = true"); これは何も返しませんが、コンソールを見ると返されると思います。 – PlayPhil1

+1

'getlementbyID'は' getElementbyId'と同じではありません – tommyO

答えて

1

おそらく、間違ったセレクタでterm=trueが見つかりませんでした。私は、私が思うに、それがうまく働いてい:

https://jsfiddle.net/wdtyore1/1/

var element = document.querySelector('term[changed="true"]');

+0

これは私が探していた説明です、私はあなたが括弧を使用する必要がある理由を理解していませんが、これは私の問題を解決し、完璧に動作しています! – PlayPhil1

+0

'querySelector'は単なるCSSセレクタです。文字列の間のスペースは、以前選択された要素の中の要素*について話していることを示します。したがって、 'term changed 'は' term'要素の中で 'changed'要素を探します。ブラケットは、特定のプロパティまたはプロパティ値を持つ要素を選択する方法です。 – TKoL

+0

@ PlayPhil1あなたのことが完璧に動作してうれしいです。あなたの問題が解決したと思ったら、正しい答えを記入してください。 – TKoL

0

これはHTML5の仕様の一部ではないという理由だけで、それはJS

経由 アクセスできないことを意味するものではありません

あなたの具体的な例では、これはあなたに変更さの値を取得します: document.getElementsByTagName('term')[1].getAttribute("changed")

document.getElementsByTagName('term')が配列を返すので、あなたは可能性が高いことをこの配列を調べるループが必要です。特にあなたが「querySelectorAll」で試してみました何 $('term[changed]').attr('changed')

関連する問題