次のようにdivを格納しているnodelistの特定のインデックス値で関数を呼び出すことは可能ですか?
var txtElem = txtdiv.getElementsByTagName("div");
私が欲しいのは、分割のリストをtxtElemノードリストに保存していることです。ノードリストに保存されている3番目のdivのクリックイベントで関数を呼び出したいと思います。分割は動的に作成され、IDがないため、idからアクセスできません。
次のようにdivを格納しているnodelistの特定のインデックス値で関数を呼び出すことは可能ですか?
var txtElem = txtdiv.getElementsByTagName("div");
私が欲しいのは、分割のリストをtxtElemノードリストに保存していることです。ノードリストに保存されている3番目のdivのクリックイベントで関数を呼び出したいと思います。分割は動的に作成され、IDがないため、idからアクセスできません。
質問はかなり不明確です。jQueryタグを見ると、次のことが頭に浮かびます。
を使用して、指定されたインデックスでjQuery関数を呼び出す方法.eq()
:
var n = 1; //the index you need
$(txtElem).eq(n).css('color', 'red');
DOM要素を取得するための単純なJavascript:
var n = 1; //the index you need
var elem = txtElem[n]; //elem will hold the DOM element
//call simple DOM methods on it:
var s = elem.innerHTML;
//you can also call jQuery functions on it:
$(elem).css('color', 'red');
ちなみにtxtElem
、それはオブジェクトではなく、NodeList
「配列のようなオブジェクト」です。
あなたが尋ねたことから、これは次のようになります:
function toPseudoArray(nodeList) {
var ar = [];
for(var i in nodeList)
if(nodeList[i].nextSibling) // or for that case any other way to find if this is an element
ar.push(nodeList[i]);
return ar;
}
nodeListをこの関数に渡し、要素を含む配列として返されるものを使用し、要素のみを使用します。
ちなみに、my_fab_function(txtElem [0]);を使用するだけで、特定の要素に対して関数を直接呼び出すことができます。-もちろん、カウントを超えない限り。