下記サンプルで、trueになるべきところがfalseになります。なぜでしょうか。
このサンプルでは識別番号のラスト値のみを比較するものですが、
実際は複数の<dd>の値を比較します。
NO12「DE」-114 という1行の文章に複数の比較する対象が含まれる場合は、
1つの<dd>に<span>で囲い【NO12】、【「DE」】、【114】のそれぞれを比較の対象にしますが、
こういったやり方自体が間違っているのでしょうか。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
<title>サンプル</title>
</head>
<body>
<form action="#">
<fieldset>
<legend>識別番号のラスト値</legend>
<select name="sss" onchange="spl(this.form)">
<option value="50">50以下</option>
<option value="100">100以下</option>
<option value="150">150以下</option>
<option value="200">200以下</option>
</select>
</fieldset>
</form>
<dl>
<dt>名前</dt>
<dd>ジム</dd>
<dt>識別番号</dt>
<dd><p><span>NO12</span>「<span>DE</span>」-<span>114</span></p></dd>
</dl>
<dl>
<dt>名前</dt>
<dd>トム</dd>
<dt>識別番号</dt>
<dd><p><span>NO33</span>「<span>DR</span>」-<span>168</span></p></dd>
</dl>
<dl>
<dt>名前</dt>
<dd>エミリー</dd>
<dt>識別番号</dt>
<dd><p><span>NO8</span>「<span>AB</span>」-<span>93</span></p></dd>
</dl>
<script type="text/javascript">
function spl(f){
var selValue = f.sss.value;
var idID = document.getElementsByTagName('p');
var idLen = idID.length;
for(i=0; i<idLen; i++){
var spans = idID[i].getElementsByTagName('span');
var pawwar = spans[2].innerHTML;
if(pawwar<=selValue){
alert("true");
}else{
alert("false");
}
}
}
</script>
</body>
</html>
No.1ベストアンサー
- 回答日時:
どんなプログラムの値にも「型」があります。
例の場合は、数値として期待しているところを文字列として認識しているのではないでしょうか。
分かりやすく言うと、電話番号の「0120」は、文字列であって数字ではありません。仮に「0120+1」とやっても、0121(足し算)にはならずに、01201(文字の連結)になります。同じように、文字列として認識されている変数に<(大なり)などの演算子を使っても意味をなしません。文字列として認識されている変数を数値に変換するには、Number()がいちばん手っ取り早いと思います。
<script type="text/javascript">
function spl(f){
var selValue = Number(f.sss.value);
var idID = document.getElementsByTagName('p');
var idLen = idID.length;
for(i=0; i<idLen; i++){
var spans = idID[i].getElementsByTagName('span');
var pawwar = Number(spans[2].innerHTML);
if(pawwar<=selValue){
alert("true");
}else{
alert("false");
}
}
}
</script>
このようにNumber()で型変換したらできました。
有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- HTML・CSS FC2カートのテンプレートでの商品表示について 1 2023/03/02 18:05
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
selectを変更不可にしたい
-
プルダウン選択を変更すると、...
-
javascriptでセレクトボックス...
-
javascriptでoptionタグを削除...
-
スマホのフォームでのselect複...
-
SELECTタグで変更禁止にする方法
-
プルダウンメニューに連動する...
-
selectのすべての値を送信する方法
-
hiddenに値を設定する方法
-
全てのselect要素をデフォルト...
-
Selectボックスの一覧表示方法
-
プルダウンを選択していないと...
-
select要素のvalueを配列で取得...
-
webページの一部のみの更新につ...
-
「年」「月」二つのドロップダ...
-
javascriptで計算フォームを作...
-
変数にフォーム名を指定したい
-
同じ名前のセレクトがある場合...
-
selectボックスで選択数を制限...
-
jqueryでselect要素を表示・非...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
全てのselect要素をデフォルト...
-
javascriptでセレクトボックス...
-
Selectボックスの一覧表示方法
-
JavaScriptで<select>の<option...
-
プルダウン選択を変更すると、...
-
select要素のvalueを配列で取得...
-
selectを変更不可にしたい
-
<input>の選択肢をプルダウンメ...
-
ラジオボタンとプルダウンを連...
-
【JS】selectでchangeした時の...
-
VBScriptでHTMLのセレクトボッ...
-
リストボックス内の重複したも...
-
同じ名前のセレクトがある場合...
-
プルダウンの値によって活性・...
-
selectが変更されたらnameを指...
-
【javascript】連想配列からセ...
-
3つのselectでURLパラメータを...
-
複数のプルダウンを1つにまとめ...
-
selectボックスで選択数を制限...
-
セレクトボックスで配列を呼び...
おすすめ情報