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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

509閲覧

javaScriptとhtmlがうまくつながらない

DaichiNakajima

総合スコア62

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2022/07/02 06:23

部分和問題を再帰関数を用いる全探索で解こうと思っています。(今回扱う部分和問題は、「N個の正の整数a0,a1, ..., aN-1と正の整数Wが与えられます。a0, a1, ..., aN-1の中から何個かの整数を選んで総和をWとすることができるかを判定してください」というものです。W=14としています。)

今回、入力をダイアログからの入力とし、配列Aの個数Nの値をユーザーが好きな長さにできるようにしたいと思い、ダイアログに「追加」ボタンと「終了」ボタンを設置しました。「追加」ボタンを押すと、入力した値が配列Aに追加されます。「終了」ボタンを押すと、配列Aの長さを保存します。

今の問題は、以下のスクリプトで実行すると、画像のようなエラーが出ることです。おそらく、javaScriptとhtmlをうまく繋げることができていない初歩的なミスだと思うのですが、なかなかうまくいきません。どこを修正すればいいでしょうか?よろしくお願いいたします。

html

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4<meta charset="utf-8"> 5<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0"> 6<script src="code4.9.js"></script> 7<title>original_dialog.html</title> 8 9 10 <style> 11 #dialog { 12 width: 250px; 13 padding: 30px 20px; 14 text-align: center; 15 border: 1px solid #aaa; 16 box-shadow: 2px 2px 4px #888; 17 } 18 </style> 19 20</head> 21<body> 22 <form id="dialog" name="dialog"> 23 <p>数字を入力してください</p> 24 <input id='number'/><br> 25 <input type="button" name="add" value="追加" id="add"/> 26 <input type="button" name="fin" value="終了" id="fin"/> 27 <input type="button" name="cancel" value="キャンセル" id="cancel"/> 28 <div id="output"></div> 29 </form> 30 31</body> 32</html>

javaScript

1'use strict' 2let i; 3let w; 4 5 6function func(i, w, a) { 7 //ペンケース 8 if (i === 0) { 9 if(w === 0) { 10 return true; 11 }else{ 12 return false; 13 } 14 } 15 16 //a[i-1]を選ばない場合 17 if (func(i-1, w, a)) { 18 return true; 19 }else if(func(i-1, w-a[i-1], a)){//a[i-1]を選ぶ場合 20 return true; 21 }else{ 22 return false;//どちらもfalseの場合はfalse 23 } 24} 25 26//入力 27let W = 14; 28 29 //function getArray() {//どうやって関数化しようか 30 //form要素を取得する 31 //const form = document.getElementById("dialog"); 32 const add = document.getElementById("add"); 33 const fin = document.getElementById("fin"); 34 const cancel = document.getElementById("fin"); 35 36 let A = []; 37 38 add.addEventListener("click", () => { 39 var a = document.getElementById("number"); 40 A.push(parseInt(a.value)); 41 }); 42 43 fin.addEventListener("click", () => { 44  let N = A.length; 45 }); 46 47 cancel.addEventListener("click", () => { 48 console.log("null"); 49 }); 50//} 51 52 53//再起的に解く 54if (func(N, W, a) === true) { 55 document.getElementById("output").textContent = "yes"; 56}else { 57 document.getElementById("output").textContent = "no"; 58}

エラー

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2022/07/02 07:03

どの行でエラーメッセージが出るのか書きましょう。42 行目らしいけど行番号が振ってないので分からないのですよ。
Lhankor_Mhy

2022/07/02 07:05

ご提示のコードには form という変数が使われていない(コメントにはある)ので、何かの勘違いではないですか? たとえば、全然違うファイルを実行している、更新したコードを保存していない、など。
Lhankor_Mhy

2022/07/02 07:08

ご提示のコードを試してみましたが、違うエラーが出ました。 ご提示のコードと、あなたが実行しているコードにかなり差異があると思われます。 お互いが違うコードを実行している状態ですと、回答がしにくいです。
DaichiNakajima

2022/07/02 07:14

同じjsファイルが二つありました、、、おっしゃる通り違うエラーが出たので、もう一度試行錯誤してみます。自力で解決できなかったらまた質問させていただきます。
guest

回答1

0

ベストアンサー

問題が再現しないので、具体的な回答は難しいです。そのあたりを想像力で補って一般論的に回答しますと、スクリプトの置き場所を変えてみてはどうでしょうか。

JavaScriptを書く場所や読み込む場所はどこがいいのか? – CodeAid-Lab(コードエイド・ラボ)

投稿2022/07/02 07:10

Lhankor_Mhy

総合スコア36115

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

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

DaichiNakajima

2022/07/04 12:12

jsファイルの順番を変えたら動きました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問