11

重複の可能性:
複数のクラスを持つ要素を取得する方法

参照ページの現在の URL を iframe ウィジェットに渡すように設定する JavaScript コードを少し作成しています。1ビットのjavascriptコードを除いて、javascriptが存在するページのコードを制御することはできません。

取得する必要がある要素値の例は次のとおりです。

<div id="new_p_2FRolls-Royce_p_2F2013-Rolls-Royce-Phantom_p_2BDrophead_p_2BCoupe-4a5be12c0a0a00650143b598a45df25d_p_2Ehtm" class="page NEW_VEHICLE_DETAILS current">

私がやろうとしているのは、クラス「ページ」と「現在」を組み合わせて div を選択することです。この例では、「NEW_VEHICLE_DETAILS」はこのページに固有であり、他のページでは異なります。現在のようにページごとに変更する必要のない一貫したコードを作成したいと考えています。これが私が今使っているコードです:

<div id="build_iframe"></div>
<script>
var pageid = document.getElementsByClassName('NEW_VEHICLE_DETAILS')[0].id;
var currenturl = 'http://m.whateverwebsite.com/index.htm#'+pageid;
var shareurl = escape(currenturl);
document.getElementById('build_iframe').innerHTML = '<iframe style="border:1px;width:100%;height:110px;" src="http://widget.mywidgetwebsite.com/share-tool/?current_url='+shareurl+'"></iframe>';
</script>

この場合、jQuery はオプションではありません。「ページ」と「現在」の両方のクラスが設定された要素のみを選択して、ID の値を取得するにはどうすればよいですか?

4

1 に答える 1

25

使用できますquerySelector(またはquerySelectorAll、一致する要素が複数あり、それらすべてへの参照を取得したい場合):

var elem = document.querySelector(".page.current");

実際にgetElementsByClassNameは、スペースで区切られたクラス名のリストを受け入れる を使用することもできます。

var elems = document.getElementsByClassName("page current");
于 2012-12-02T19:21:56.443 に答える