Özniteliği ile bir xml düğümünü yakalamaya çalışıyorum. Jquery yerine javascript xml kullanarak özellik değeri ile bir öğe almak için çalışıyorumÖzniteliğe göre xml öğesini almanın bir yolu var mı?
düzenlemek. Bunun için basit bir yöntem var mı?
Özniteliği ile bir xml düğümünü yakalamaya çalışıyorum. Jquery yerine javascript xml kullanarak özellik değeri ile bir öğe almak için çalışıyorumÖzniteliğe göre xml öğesini almanın bir yolu var mı?
düzenlemek. Bunun için basit bir yöntem var mı?
önce öğelerin listesini yapın, ardından özniteliklerine göre filtreleyin.
burada Kontrol dışarı demomu: Gerçekten kolay jQuery kullanıyor http://jsfiddle.net/silkster/eDP5V/
jquery bunu kolayca yapabilir. http://think2loud.com/224-reading-xml-with-jquery/
Anında bir xml yapıyorum, jquery IE ile iyi çalışmıyor. – Wenn
buna yanlış senaryoyu yayınladığını bana işaret edilmiştir
document.getElementsByAttribute = function(attribute, value, tagName, parentElement) {
var children = ($(parentElement) || document.body).getElementsByTagName((tagName || '*'));
return $A(children).inject([], function(elements, child) {
var attributeValue = child.getAttribute(attribute);
if(attributeValue != null) {
if(!value || attributeValue == value) {
elements.push(child);
}
}
return elements;
});
}
JQuery Ücretsiz olarak bu yeni bir yanıt haklı hissediyorum .. hehe here okumak
// document.getElementsByAttribute([string attributeName],[string attributeValue],[boolean isCommaHyphenOrSpaceSeparatedList:false])
document.getElementsByAttribute=function(attrN,attrV,multi){
attrV=attrV.replace(/\|/g,'\\|').replace(/\[/g,'\\[').replace(/\(/g,'\\(').replace(/\+/g,'\\+').replace(/\./g,'\\.').replace(/\*/g,'\\*').replace(/\?/g,'\\?').replace(/\//g,'\\/');
var
multi=typeof multi!='undefined'?
multi:
false,
cIterate=document.getElementsByTagName('*'),
aResponse=[],
attr,
re=new RegExp(multi?'\\b'+attrV+'\\b':'^'+attrV+'$'),
i=0,
elm;
while((elm=cIterate.item(i++))){
attr=elm.getAttributeNode(attrN);
if(attr &&
attr.specified &&
re.test(attr.value)
)
aResponse.push(elm);
}
return aResponse;
}
Bunun jakasız bir yanıt olduğuna emin misin? '$ (parentElement)' ... – Brian
whoops! Aynı forumlarda ikiye bakıyordum .... http://www.codingforums.com/showthread.php?t=26744 İkisini de test ettim .. benim için işe yarayacak gibi görünüyor. – rlemon
Tam olarak jQuery'den değil, jQuery lite'den emin olun - uzantı/eklenti/modül yok ... – Brian
. Bunun gibi bir dizimiz olduğunu varsayalım.
<document>
<value type="people">
<name>
John
</name>
</value>
<value type="vehicle">
<name>
Ford
</name>
</value>
</document>
Sonra
var xmlDocument = $.parseXML(str);
$(xmlDocument).find("value[type='people'] name").text()
Biz dize 'John' geri alacak.
Bunu yapma. Bu kaba. Unsuruyla yakalamadan önce elemanla konuşmaya çalışın. Cidden, sorunuzla ilgilenebilir misiniz? Ne denedin ve sonuç neydi? –
jquery.find ("node [id = '1']") yerine javascript kullanarak bir eleman almaya çalışıyorum – Wenn
Lütfen unvanlarınızı "Javascript:" ile önceden yazmayın. Etiketler bunun için var. –