2016-12-12 16 views
0

神の名前で こんにちは。 別のページ[answr.php]を呼び出すページがあり、<input type=number>のようなオブジェクトが返されます。 問題は、動的名を持つオブジェクトを作成することです。だから私はそれらのオブジェクトの名前を知らない。どのように私はそれらを推測することができますか? ページ1:ここ は私のコードなどのような単純なコードである I used a part of this function to separate the data in the object's ID. this func is not important and just shows how can I separate my data from an object's IDJAVASCRIPTを介してajaxによって動的に作成された後に要素IDを取得

<script language="javascript"> 
function checknumber(theid){ 
. 
. 
. 
var strObjName = theid.id.toString(); 
var strDateExt = strObjName.substring(5, 13); 
var strIndexExt = strObjName.substring(13, 14); 
document.getElementById("testOut").innerHTML = "Object's Name >" + theid.id.toString(); 
document.getElementById("testOut").innerHTML += "</br> the Date >" + strDateExt; 
document.getElementById("testOut").innerHTML += "</br> the Index >" + strIndexExt; 
} 

、これは、Ajax and creates objects dynamicly上で答えることans.phpです:

$strShrtDate=sAddDateNoSlash($strDate,1);//this func returns a date string without slashes like 20161213 
$strIdNumber="numId".$strShrtDate."0"; 
$strOut="<input id=$strIdNumber type='number' onchange = 'checknumber($strIdNumber);'>"; 
echo $strOut; 
echo "<input name='btnSaveTmrow' type='button' value='Save' onClick='fnSaveTmrow();'>"; 

これは数を作成します「numId201612130」という名前のオブジェクトとボタン。今、私は名前を取得したい

<input type="number" is="numId201612130" onchange = 'checknumber(numId201612130);'> 
<input name='btnSaveTmrow' type='button' value='Save' onClick='fnSaveTmrow();'> 

numIdが、それは数字入力でsayes、それはデータが日付2016年12月13日のためのものであり、特別なコードが0 あるのです。 そのコードは次のようにHTMLタグを作成しますそのようなものを処理するために[、numId201612131numId201612140numId201612141、...]をDataBankに挿入します。どうすればいい? は、この私のfnSaveTmrowである()関数は、JSです:

function fnSaveTmrow(){ 
    url = "SaveTmrow.php"; 
    var vars = "mID="+i_ID+"&tmrowDate="; // <-- I want to send that data here to send by ajax again after that 'ans.php' code who dynamicly created the number input tag 
    fnDoAll(); // this is ajax code 
} 

私はこのようなオブジェクトのIDとその値に挿入日付送りたい:

var strObjName = document.getElementById("numId201612130").toString(); 
var strDateExt = strObjName.substring(5, 13); // contains 20161213 
var strIndexExt = strObjName.substring(13, 14); // contains 0 
var value = document.getElementById("numId201612130").value; 

を私はmunId201612130 IDを持っていないので、それは動的に作成され、動的にもそれを習得しなければなりません。 私はmunId201612130またはmunId201612141またはmunId201612152

答えて

0

使用document.querySelectorAllのようなこれらのIDはidを持つすべて<input type="number">のリストを取得するために戻って私をfunctionを有することができます。

var inputs = document.querySelectorAll('input[type=number][id]') 

すると、そのidに各要素を変換するために、このリストにArray#mapを呼び出す:

function getAllDynamicIds() { 
 
    var inputs = document.querySelectorAll('input[type=number][id]') 
 
    return [].map.call(inputs, function (e) { 
 
    return e.id 
 
    }) 
 
} 
 

 
console.log(getAllDynamicIds())
<input type="number" id="numId201612130" onchange = 'checknumber(numId201612130);'> 
 
<input type="number" id="numId201612131" onchange = 'checknumber(numId201612131);'> 
 
<input type="number" id="numId201612140" onchange = 'checknumber(numId201612140);'> 
 
<input name='btnSaveTmrow' type='button' value='Save' onClick='fnSaveTmrow();'>

+0

THANKS。これすごくいいね。 'numId201612130、numId201612131、numId201612141'を返します。それらを別々に変数に入れる方法はありますか? – user2398254

+0

実際には配列を返します。つまり 'array [index]'を使って個々に 'id 'を得ることができます。 ( 'index'はゼロから始まります。) – gyre

+0

ありがとうございます。いくつかのオブジェクトを 'div'に関連づけたり、他の' div'に関連付ける方法はありますか? 'myDiv1.numId201612130'や' myDiv2.numId201612172'を 'var @gyre – user2398254

関連する問題