2017-01-17 5 views
1

私は自分のワードプレスのテーマの一部を変更していますが、私は問題に遭遇しました。私はこれを書くことで機能を削除しようとしていdivタグの下に表示されているhrefを削除するには?

<div class="one"> 
    <a href="foobar.com">foobar.com</a> 
</div> 

:私はHTML

私はクラス名を変更する機能を持っていませんが、リンクをクリックする機能を削除するか、設定されたIDタグ

JavaScript:

document.getElementsByClassName("one") 
    .getElementsByTagName("a") 
    .removeAttribute("href"); 

ただし、この方法は機能しません。間違っていますか?

答えて

3

あなたはCSSを使うことができます。

.one a { 
    pointer-events: none; 
    } 

とまた、あなたはこのようにそれを行うことができますcursor: default;

2

document.getElementsByTagName("a")[0].removeAttribute("href");
<div class="one"> 
 
    <a href="foobar.com">foobar.com</a> 
 
</div>

最初.oneを対象とする必要はありません。 getElementsByTagNameをターゲットにするだけですが、これは要素の配列を返しますので、削除する要素のインデックスを参照する必要があります。あなたが「1」クラスのリンクのみを選択する必要がある場合、あなたはその中の子どもとインデックスを呼び出すバックgetElementsByClassから何を得るにインデックスに

document.getElementsByTagName("a")[0].removeAttribute("href"); 
0

必要があります:

document.getElementsByClassName("one")[0].children[0].removeAttribute("href") 
0

を追加することにより、ハンドカーソルを削除することができます。

 document.getElementById("text").onclick = function(){ 
 
\t \t 
 
    var clickStatus = true; // Change this to true if you want to enable the link. 
 
\t \t 
 
\t if (clickStatus){ 
 
    \t window.location = "http://foobar.com"; 
 
\t } 
 
\t \t \t 
 
}
<div class="one"> 
 
    <section id="text">foobar.com</section> 
 
</div>

0

getElementsByClassName関数が返されますので、それはType Errorを生成します。ノードリストは単一のノードではないので、以下を実行する必要があります。

document.getElementsByClassName("one")[0] 
.getElementsByTagName("a")[0] 
.removeAttribute("href"); 

または

document.querySelector(".one a").removeAttribute("href"); 

上記のいずれかの方法は、私はそれは私はあなたがここにHrefの機能を無効にする必要があると思う

0

を役に立てば幸い

あなたの問題を解決します。 jqueryのを使用してください:

$('.one > a').on('click',function(e){  
    e.preventDefault(); 
} 

希望これはあなたの

のために動作します
関連する問題