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

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

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

SVGは、XMLを基盤とした2Dベクター画像記述言語。画像を線・面といった図形の集合体として扱うベクター画像のため、環境に適した表示が可能です。アニメーション機能もサポートされており、簡単なインタラクティブコンテンツ作成もできます。

D3.js

D3.jsとは、データに基づいてHTMLやSVGドキュメントを編集するために作られた、小規模なオープンソースのJavaScript可視化ライブラリです。

HTML5

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

jQuery

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

Q&A

解決済

2回答

1787閲覧

jqueryのselectorについて

退会済みユーザー

退会済みユーザー

総合スコア0

SVG

SVGは、XMLを基盤とした2Dベクター画像記述言語。画像を線・面といった図形の集合体として扱うベクター画像のため、環境に適した表示が可能です。アニメーション機能もサポートされており、簡単なインタラクティブコンテンツ作成もできます。

D3.js

D3.jsとは、データに基づいてHTMLやSVGドキュメントを編集するために作られた、小規模なオープンソースのJavaScript可視化ライブラリです。

HTML5

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

jQuery

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

0グッド

0クリップ

投稿2016/05/05 08:08

こんにちは、初心者です。

D3.jsでグラフを作っていますが。

SVGタグのIDAttibuteのvalueを獲得するためにjqeuryのselector利用すると

なぜか<head>タグのなかでするとundifinedが変換されています。

でも<body>でするとできます。

その理由は何ですか?そして<head>でしたかったらどうすればいいでしょうか?

ご意見待っています。

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script src="http://d3js.org/d3.v3.min.js" language="JavaScript"></script> <script src="liquidFillGauge.js" language="JavaScript"></script> <script src="https://code.jquery.com/jquery-latest.js" language="JavaScript"></script> <style> .liquidFillGaugeText { font-family: Helvetica; font-weight: bold; } </style> <script language="JavaScript">
var tagId2 = $('svg').attr('id'); alert(tagId2); //できない var config = liquidFillGaugeDefaultSettings() config.circleColor = "#FF7777"; config.textColor = "#FF4848"; config.waveTextColor = "#FF0000"; config.waveColor = "#FFDDDD"; config.circleThickness = 0.2; config.textVertPosition = 0.2; config.waveAnimateTime = 1000; function NewValue(){ if(Math.random() > .5){ return Math.round(Math.random()*100); } else { return (Math.random()*100).toFixed(1); } } </script>
</head> <body> <!-- svg = xml형식으로 그래픽을 지원, 이미지 포맷(jpg,gif등)을 대신 이용할때 사용됨. -->

<svg id="fillgauge" width="50%" height="250" onclick="gauge.update(NewValue());"></svg>

<script> var tagId = $('svg').attr('id'); alert(tagId); //できる var gauge = loadLiquidFillGauge("fillgauge", 25, config); </script> </body> </html>

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

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

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

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

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

guest

回答2

0

ベストアンサー

HTMLは上から下に解釈されるので、<head>の時点ではまだ下のSVGタグを読み込んでいないので、うまく動きません。

<head>に書く場合は、HTMLの読み込みが終わってから実行するように、jQuery(function(){...})で囲んで実行しましょう。

投稿2016/05/05 08:13

maisumakun

総合スコア145183

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

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

退会済みユーザー

退会済みユーザー

2016/05/05 08:15

それならwindow.onloadなどのfunctionでつつんだらできるのですか?
maisumakun

2016/05/05 08:17

はい、onloadでも大丈夫ですが、jQueryのreadyのほうが(画像の中身の読み込みなどを待たないので)早いタイミングで実行されます。
退会済みユーザー

退会済みユーザー

2016/05/05 11:55

参考になりました!本当にありがとうございます!
guest

0

<script language="JavaScript"> $(function(){ ・・ここに書く }); </script>

おまじないだと思って $(function(){ });の中に書いてください。

このコードが読み込まれた時にまだページの読み込みが完了していないタイミングで実行しても、DOMが存在していない場合がありますね。ページの読み込みを待ってから、コードを実行する動きに変化します。

投稿2016/05/05 08:13

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2016/05/05 08:16

本当にありがとうございます! 参考になりましt!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問