お蔵入り

clip!clip!
Ads By Google

HTAでレコードを条件検索するプログラムを作っています。

【テーブルの作成※簡素化しています】
strMES = strMES & "<table id='strData'><tr>" & _
"<td class='c1' align=center>選択</td>" & _
"<td class='c2' align=center>時間</td></tr>"

Do
If objRS.Eof Then Exit Do
strMES = strMES &"<tr>"& _
"<td class='c1'><input type='checkbox'>" & _
"</td>" & _
"<td class='c2'>" & objRS(7) & "</td></tr>"
objRS.MoveNext
Loop

strMES = strMES & "</table>"
objRS.Close
【取得】
For Each strTR In document.getElementByID("strData").getElementsByTagName("tr")
Set strTDs = strTR.getElementsByTagName("td")
For Each strCheckBox In strTDs(0).getElementsByTagName("input")
If strCheckBox.Checked = True Then
strID = strTDs(0).name'?getElementsByTagName("input")(0).Value
strNAME = strTDs(2).Value'?getElementsByTagName("input")(0).Value
strKEN = strTDs(3)'getElementsByTagName("input")(0).Value
Msgbox "選んだのは" & vbcrlf & strID & "..." & strNAME & "..." & strKEN
End If
Exit For
Next
Next

「TD」内に含まれている文字列を取得する値としたいのですがオブジェクトがありませんとかいう風になってしまいます。
ValueかNameでOKかとやってみたのですがうまくいきません。それか文字列を抜き出す方が難しいでしょうか?

2009-01-18 23:11の質問
この質問は、30日間解決しなかったために自動的に質問が一旦閉じられました。

回答(1)

1.

2009-01-19 02:03:33
やり方は色々ありますが、、
例えば、テーブルとフォームが
<form name="Data">
<table id="strData">
<tr><td class="c1">選択</td><td class="c2">時間</td></tr>
<tr><td class="c1"><input type="checkbox" name="select" value="v1"></td><td class="c2">09:00</td></tr>
<tr><td class="c1"><input type="checkbox" name="select" value="v2"></td><td class="c2">15:00</td></tr>
<tr><td class="c1"><input type="checkbox" name="select" value="v3"></td><td class="c2">18:00</td></tr>
</table>
</form>
のように構成されているとしますと
その時のフォームの中のチェックボックスは、
フォーム名Data のチェックボックスフォーム名select の配列として
document.Data.select
として得られます。
今チェックされているフォームの隣のTDの内容(時間:"??:??")を取り出すには、
例えばこのようにします。
For Each x in document.Data.select 'チェックボックス毎調べる
    If x.checked Then 'チェックされていたら
        Set td1=x.parentElement '親のTDを得る
        Set tr=td1.parentElement '親のTRを得る
        Set td2=tr.cells(1) 'TRの中のセル(TD)を番号(0始まり)で得る
        MsgBox td2.innerHTML 'このTRの中の2番目のTDの内容を得る(innerText も同じ)

    End If
Next
回答レベル : アドバイス
Ads By Google

コメント

まだコメントがありません

トラックバック(2)

トラックバックURL: