iT邦幫忙

0

Javascript - 如何組裝DOM#IP的變數名稱?

如題

我現在有12組IP
分別為下:
A1、A2、A3、A4
B1、B2、B3、B4
C1、C2、C3、C4

其分別作用的對象「可能」為。

<DIV><P><SPAN><INPUT><BUTTOM>

目前已知取法如列:

document.getElementsByName(name+i)[0]

假設我要取出的值寫法為:

$('#ID名稱').val()

預設利用情形一般做法如下:

$('#A1').val()+$('#A2').val()+$('#A3').val()+$('#A4').val().....

我希望在上面的寫法上「左括號」內的變數上進行「組裝」
組裝方式如下
#idName + i

idname可以透過陣列與迴圈做變換
I可以透過陣列與迴圈做變換

下面是我的做法,目前全部失敗,全部回傳「無法辨視」。

$(IDname+I).val()
$('IDname+I').val()

var testID =[A,B,C];
var testLength =[1,2,3,4];
$(testId[0]+testLength[0]).val()

請問要何如在$()之間安排二個變數,去變化DOM的指定?

附註:
不用幫我寫迴圈,我要自已寫。
這只是舉例,我要寫的迴圈多達4~12層很複雜。
請勿提供GOOGLE搜尋開源碼範例。
以上不做商業用途,純業餘興趣,敬請賜教。

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
2
listennn08
iT邦高手 5 級 ‧ 2020-02-14 10:26:19
最佳解答

上面的範例是 javascript 下面的範例是 jquery @@
id 的話用 jquery 要加 #

$(`#${testID[i]}${testLength[j]}`).val();

陣列字串要有 ""
然後

<DIV><P><SPAN><BUTTON> <- 用 val 應該抓不到值

可以再加一個判斷 看要用 val 還是 html

$(`#${testID[i]+testLength[j]}`)[0].is(/* <tagName> */)
// or
$(`#${testID[i]+testLength[j]}`)[0].tagName
BeEvil_Y iT邦新手 4 級 ‧ 2020-02-14 11:29:24 檢舉

好厲害,你已經預想到我需要判斷TAG了。

因為有踩過就會去想這樣是不是會抓不到值/images/emoticon/emoticon82.gif

1
w4560000
iT邦研究生 5 級 ‧ 2020-02-14 10:38:49
$('#' + testId[0] + testLength[0]).val()
0
qpalzm
iT邦新手 1 級 ‧ 2020-02-14 14:40:23

$('IDname+I').val()
應該怎麼抓都抓不到 I要放在''外面改成$('IDname'+I).val() 試試看呢

BeEvil_Y iT邦新手 4 級 ‧ 2020-02-14 15:10:22 檢舉

謝謝你告訴我,我會努力嚐試。

我要發表回答

立即登入回答