
お世話になります。Jsを学び出し始めた初心者です。
Javascriptで、
「あるクラスが特定数以下の場合、ボタンを消す」
ということをしたいのですが、うまく動きません。
ブラウザのコンソールでは、
Uncaught TypeError: gradBtnRemove.remove is not a function
というエラーが出ていますが、調べて色々試したのですがうまくいかず…
alert() で確認すると、数とかはきちんと取得されているようなのですが、
remove(); にした途端、動かなくなります。
どこの書き方が悪いのでしょうか?
どなたかご教授いただけると幸いです。
<!DOCTYPE html>
<head>
<style>
.grad-btn {
width: 40vw;
height: 22px;
display: block;
margin: 50px auto;
padding: 20px;
background-color: #3a6689;
color: white;
text-align: center;
vertical-align: middle;
}
</style>
</head>
<body>
<section>
<div class="item element2">aaa</div>
<div class="item element2">bbb</div>
<div class="item element2">ccc</div>
<div class="item element2">ddd</div>
<div class="item element2">eee</div>
<label class="grad-btn" for="trigger1">続きを見る</label>
</section>
<script>
const moreViewNoneJs = document.getElementsByClassName('item');
let lenJs = moreViewNoneJs.length;
let gradBtnRemove = document.getElementsByClassName('grad-btn');
if (lenJs < 3) {
gradBtnRemove.remove();
}
</script>
</body>
</html>
No.1ベストアンサー
- 回答日時:
こんにちは
getElementsByClassName が返す値は、ノードリストと言われる配列風のオブジェクトです。
https://developer.mozilla.org/ja/docs/Web/API/Do …
ですので、結果の要素数が1つであっても、配列的な扱いが必要になります。
エラーメッセージもそのことを指しています。
(=直接のメソッドとしては存在しない。)
具体的には、
gradBtnRemove[0].remove();
などとしておけば、要素は削除されます。
ご回答ありがとうございます!
できました。
(テストではうまくいくのに、本物に入れるとこっちの数の指定通り動かないというおかしい現象が起きていますが、とりあえずできました。サイトの仕様が絡んでいると思っておきます)
クラス要素を削除するというのを見ていたときに「配列」というのが出てきたのですが、そのことだったのですね。
それは選んだクラス要素全てを消すfor文だったので違うのかなとスルーしてしまったのがダメだったのですね。
もっと勉強して、さらっと書けるようになりたいです。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- JavaScript 指定したパスが現URLに含まれていたら特定要素を削除するJavascriptのコードを教えてください 2 2023/04/27 17:58
- HTML・CSS img と p を縦中央に配置したいのですがうまくいきません。 2 2023/01/12 14:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavaScriptのdiv.style属性の変...
-
jQueryでのドラッグアンドドロ...
-
swiper
-
jqueryを使ったスムーススクロ...
-
エクセルで、日付を入力すると...
-
エクセルVBAで、MsgBox やInput...
-
Googleフォーム・複数人の申し...
-
Excelシート上のマクロを登録し...
-
インタラクティブの反対語は?
-
メルカリのメルカードで買い物...
-
複数の画面を同時に表示したい
-
【Excel】特定の文字を含むセル...
-
PC初心者。処理が遅くてイライ...
-
<ACCESS>フォームのコマンドボ...
-
VBA リストボックスをダブルク...
-
【Excel VBA】マクロボタンを表...
-
ダイアログベースでのキー入力...
-
マクロを登録しているボタンが...
-
男性に対して、『女性への気遣...
-
EXCEL VBA マクロ 実行する度に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
折りたたみを全て開いて別ペー...
-
確認ダイアログを次からは表示...
-
javascriptで複数の表示・非表...
-
特定の条件のHTML要素を一括で...
-
改行をしたいが、<br>と...
-
CSSでreadonlyの機能はあり...
-
macかwinか判別しスタイルシー...
-
SITEINFOの書き方について
-
ブラウザの表示領域から高さを...
-
vml フォントの大きさ変更
-
フォームで「パスワード(確認...
-
【JavaScript】検索がヒットし...
-
タイプライタ風の文字を真ん中...
-
jqueryを使ったスムーススクロ...
-
jQueryのCSSで値に変数を使う方法
-
webサイトに動画をはりつけ、ク...
-
年月日時分を指定してCSSを切り...
-
時間帯によってclass名を変更し...
-
2回目以降のページロード時には...
-
ブログパーツをレスポンシブ化...
おすすめ情報