Bir ajax yanıt ile html iki aynı değeri güncelleştirmek

5 Cevap php

Ben farklı yerlerde aynı kimliğe sahip iki <span> etiketleri sayfamı om var. Ben iki kez aynı kimliği kullanmak yanlış olduğunu biliyorum. Bana sınıflara kimliklerini değiştirmek için hiçbir sorun.

HTML:

<span id="tumme">4</span>
...
<span id="tumme">4</span>
....

tarafından güncellenir

AJAX:
document.getElementById(tumme).innerHTML = xmlHttp.responseText;

ancak üzerinde <span> güncellenir.

Herhangi bir fikir?

5 Cevap

Peki, sen ADI niteliğini kullanabilirsiniz. Aynı ada sahip birden çok düğüm olması mükemmel geçerlidir.

Yani bu düğümleri olurdu:

<span id="somethingUnique1" name="tumme"></span>
<span id="somethingUnique2" name="tumme"></span>

Güncellemek için, senin gibi bir şey olacaktır:

var nodes = document.getElementsByName("tumme");
for (var i = 0, node; node = nodes[i]; i++) {
  node.innerHTML = xmlHttp.responseText;
}

Id hakkındaki W3C web sitesinden (http://www.w3.org/TR/REC-html40/struct/global.html#h-7.5.2):

Bu öznitelik bir öğe için bir ad atar. Bu isim bir belgede benzersiz olmalıdır.

Diğer bir deyişle, bunu düzeltmek için ikinci SPAN başka id vermek.

Id = değiştirmek sınıfa = aynı kimliğe sahip 2 elemanları YANLIŞ çünkü

Sonra sınıf adının tüm öğeleri almak için function some guy wrote jQuery ve güçlü seçicileri kullanarak, ya burada ya

Bir id belge başına benzersiz olması gerektiğinden, aynı kimliğe sahip iki unsur olamaz. Öğeleri tanımlamak için başka bir yol bulmak. A sınıfı bir grubun üyesi olarak bir öğe işaretlemek için standart bir araçtır. Ayrıca onlara farklı kimlikleri vermek ve daha sonra bir dizi bu kimliklerini saklamak olabilir.

<span class="tumme"> 4 </span>

Eğer geri XHR istek veri almak Sonra, onlar üzerinde tüm elemanları ve döngü bulabilirsiniz. Eğer sınıf adıyla elemanları almak için kendi yöntemini dönebilirsiniz olurken, kullanımı kolay an existing one.

Bunlardan üzerinde döngü sadece bir vaka olacaktır:

for (var i = 0; i < elements.length; i++) {
    elements[i].innerHTML = xmlHttp.responseText;
}

GetElementsByClass kullanın:

function getElementsByClass(searchClass,node,tag) { var classElements = new Array(); if ( node == null ) node = document; if ( tag == null ) tag = '*'; var els = node.getElementsByTagName(tag); var elsLen = els.length; var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)"); for (i = 0, j = 0; i < elsLen; i++) { if ( pattern.test(els[i].className) ) { classElements[j] = els[i]; j++; } } return classElements; }