質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
DOM

DOMは、Document Object Modelの略で、HTML文書やXML文書をアプリケーションから利用するためのAPIです。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Null

Nullとは、プログラミング言語やデータベースにおけるデータ表現の一種です。コンテキストによって"空"もしくは"長さ0の文字列"、”未知・不明”を意味します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

4230閲覧

hrefの中身が""かnullのものだけaタグの下線を無効にしたい

Nishin

総合スコア30

DOM

DOMは、Document Object Modelの略で、HTML文書やXML文書をアプリケーションから利用するためのAPIです。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Null

Nullとは、プログラミング言語やデータベースにおけるデータ表現の一種です。コンテキストによって"空"もしくは"長さ0の文字列"、”未知・不明”を意味します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/10/12 05:06

例えば、下記のようなHTMLコードがある時に、

index.html

1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <title>Links</title> 7</head> 8<body> 9 <h2>PageList</h2> 10 <p><a href="/hoge.html" target="_blank">hoge</a></p> 11 <p><a href="/guhe.html" target="_blank">guhe</a></p> 12 <p><a href="" target="_blank">None1</a></p> 13 <p><a href="/agu.html" target="_blank">agu</a></p> 14 <p><a href="/guo.html" target="_blank">guo</a></p> 15 <p><a href="" target="_blank">None2</a></p> 16 17<script> 18/* 19 document.querySelectorAll('p>a'){ 20 if( ? =""){ 21 this.style.textDecoration = 'none'; 22 } 23 } 24*/ 25</script> 26</body> 27</html>

内部のaタグのhrefの中に何も入っていない(""もしくはnull)p要素をすべて選択して(上記の場合はNone1とNone2)、それらのaタグを無効にする(中のテキストだけが表示されるようにする)為には、JavaScriptの記述はどのようにすればよいでしょうか。

スクリプトタグ内のように、すべてのpタグの中のaタグを選択する迄は分かるのですが(或いは違うかもしれません...)、その中身のif文をどう記述すればよいのか、.styleの前に繋げるのはthisなのか「document.querySelectorAll('p>a')」を変数化したものなのか、分かり兼ねています。

まだ構想段階ですが、この先PHPとMySQLを連動させて、DBのnameカラムに格納したデータを、linkカラムに格納したurlのデータ(nullのものもある)をhrefに格納して、urlのデータが存在するものだけaタグのリンクが有効になるようにしようと考えております。

毎度初歩的内容かとは存じますが、ご回答お願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

下線だけ消したいのであれば、CSSでの対応が可能です(状況によっては、詳細度の関係上調整が必要かもしれません)。

CSS

1a[href=""]{ 2 text-decoration: none; 3}

jsFiddleでの実装例

投稿2020/10/12 05:17

maisumakun

総合スコア145208

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

こんにちは。

CSSで対応するのはいかがですか?

サンプル

css

1a[href=""]{ 2 all: inherit; 3 pointer-events:none; 4}

投稿2020/10/12 05:17

Lhankor_Mhy

総合スコア36156

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Nishin

2020/10/12 05:51

!盲点でした。JSでなくCSSでも出来るのですね。 pointer-eventsをnoneにすることで、カーソルが切り替わったり、クリックするとページの先頭に飛んでしまうような効果はなくなるのですね。 all: inheritについては、私の方でググって解明してみます。 投降後すぐさまご回答頂きまして、ありがとうございました。助かります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問