Ajaxで新機能ですが、getelementbyidを使用してそのIDを持つページの要素を更新できることがわかりました。私が知りたいことは、それらがすべて同じIDを持つ場合、どのようにページの特定の要素をターゲットにするかということです。getElementByIdを使用してページに要素を設定する
<li class="a">something</li><li class="a">something b</li>
第2世代のターゲットを設定するにはどうすればよいですか?彼らは両方が同じidを使用しているので、getelementbyid( 'a')を使用することはできません。これは、そのidで最初の要素のみを更新するためです。
これは
function loadurl(dest) {
var XMLHttpRequestObject = false;
if (window.XMLHttpRequest) {
XMLHttpRequestObject = new XMLHttpRequest();
} else if (window.ActiveXObject) {
XMLHttpRequestObject = new
ActiveXObject("Microsoft.XMLHttp");
} if(XMLHttpRequestObject) {
XMLHttpRequestObject.open("GET", dest);
XMLHttpRequestObject.onreadystatechange = function() {
if (XMLHttpRequestObject.readyState == 4 &&
XMLHttpRequestObject.status == 200) {
document.getElementById("a").innerHTML =
XMLHttpRequestObject.responseText;
delete XMLHttpRequestObject;
XMLHttpRequestObject = null;
}
}
XMLHttpRequestObject.send(null);
}
}
私のAjaxのスクリプトであり、これは代わりにクラス名を使用して、IDを繰り返さないでくださいリンク
<a onclick="loadurl('page.php?p=1&id=2')">
IDを再利用しないでください。それが今あなたが苦労している理由です。要素をグループ化するには、クラス名を使用します。 IDは、単一のDOM要素を一意に識別します。 – BonyT
ポインタとして: 'getElementById()'が、例えばgetElementsByClassName()の複数の名前とは対照的に、単数形の名前を持つ理由は、それが適用され、見つかる/操作されるべきであるからです。唯一の***要素。 –