0

基本のリンクを変更しようとしてい<a>ます。ID はありません。直接アクセスできない header.aspx ファイルにあります。これは、id "SiteMenu" を持つ div の最初の孫要素でもあります。その div から、次のスクリプトを使用したいと思います。(スクリプト参照をフッターに配置して、テーマ ディレクトリにアップロードできます):

document.getElementById("SiteMenu").childNodes[0].childNodes[0].href = "/search.aspx?keyword='+'&page=1";`

も試しました:

document.getElementById("SiteMenu").firstChild.childNodes[0].href = "/search.aspx?keyword='+'&page=1";`

HTML の基本構造は次のとおりです。

<div id="SiteMap">
    <p>
        <a href="/home.aspx">Home</a>
    </p>
</div>

私はJSのプロではありません。ここに投稿する前に読んだいくつかのことから、childNodes.childNodes は JS (または DOM?) のノード レベルを検索する無効な方法のようです。

タグの href を操作する他の方法はありますか?

4

1 に答える 1

2

.childNodes[0]最初の子はtext node<p>であり、 (少なくともあなたの例では)の前に改行とスペースを含むため、子はありません。最初の要素 nodeを取得します。

例えば:

document.getElementById("SiteMenu").children[0].children[0].href = '...';

詳細については、 .children [MDN]を参照してください。


代わりに、各子ノードを反復処理し、その.nodeType [MDN]をテストして、それが要素ノードであるかどうかを確認できます。

于 2012-06-19T00:53:35.390 に答える