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

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

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

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

4回答

227閲覧

子要素のテキストを含まず、指定要素のテキストのみを抽出する方法

yassoreeni

総合スコア11

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2019/07/07 08:29

編集2020/02/09 05:07

前提・実現したいこと

・以下のHTMLから 72円 というテキストのみ抜き出したいと考えています。

html

1<p class="product-cart-price"> 2  <span class="only-sp product-cart-small-text">小計(税込)</span> 3  72円 4</p>

恐れ入りますが、もしお分かりの方がいらっしゃればご教授頂けますと幸いです。

試したこと・発生している問題

以下では undefined になってしまいました。

js

1console.log($(".product-cart-price>:not(span)").text()); 2$(".product-cart-price>:not(.product-cart-price>span)").text()

以下では 小計(税込) 72円 と出力されてしまいました。

js

1console.log($(".product-cart-price:not(span)").text());

補足情報(FW/ツールのバージョンなど)

・jQuery v3.3.1 を使用しています。

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

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

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

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

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

x_x

2019/07/08 00:46

CSS は関係ないのでは?
guest

回答4

0

ベストアンサー

jQuery API のノード参照範囲は(基本的に)要素ノードだけです。
テキストノードは DOM API を使って、参照して下さい。

JavaScript

1document.querySelector('.product-cart-price').lastChild.data

Re: yassoreeni さん

投稿2019/07/07 09:06

think49

総合スコア18164

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

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

yassoreeni

2019/07/07 12:13

ありがとうございます! jQueryの参照範囲は存じませんでした。 勉強になります。
guest

0

かなり微妙な方法なので、ほかの人がもっといい方法を教えてくれるかもしれません。

js

1console.log($($(".product-cart-price")[0].outerHTML).children().empty().parent().text().trim());

投稿2019/07/07 08:52

syuus

総合スコア403

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

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

yassoreeni

2019/07/07 12:15

教えて頂き、誠にありがとうございます! jQueryを用いる場合はこのようになるんですね。 参考にさせていただきます。
guest

0

jQuery

1var result = $.trim($(".product-cart-price") 2 .contents() 3 .filter(function() { 4 return this.nodeType === 3; 5 }).text()); 6console.log(result);

https://api.jquery.com/contents/

投稿2019/07/08 00:45

x_x

総合スコア13749

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

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

yassoreeni

2019/07/14 07:05

jQueryでの方法をご教授頂き、ありがとうございます。勉強になります。 また、タイトルの方も修正させていただきます。
guest

0

DOMで処理するならこう

javascript

1<script> 2$(function(){ 3 var str=$('.product-cart-small-text').get(0).nextSibling.nodeValue.trim(); 4 console.log(str); 5}); 6</script> 7<p class="product-cart-price"> 8  <span class="only-sp product-cart-small-text">小計(税込)</span> 9  7210</p>

投稿2019/07/08 00:35

yambejp

総合スコア114843

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

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

yassoreeni

2019/07/14 07:03

ご教授頂き、誠にありがとうございます。こちらのやり方も参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問