XMLノードをその属性で取得しようとしています。属性でgetElement xmlを作成する方法はありますか?
編集
私はjavascriptのXMLの代わりにjQueryを使用して、その属性値によって要素を取得しようとしています。これには簡単な方法がありますか?
XMLノードをその属性で取得しようとしています。属性でgetElement xmlを作成する方法はありますか?
編集
私はjavascriptのXMLの代わりにjQueryを使用して、その属性値によって要素を取得しようとしています。これには簡単な方法がありますか?
最初に要素のリストを作成し、次にそれらの属性でフィルタリングします。
ここでチェックアウト私のデモを:それは本当に簡単にjQueryを使用しているhttp://jsfiddle.net/silkster/eDP5V/
jqueryでこれを非常に簡単に行うことができます。 http://think2loud.com/224-reading-xml-with-jquery/
私はその場でxmlを構築していますが、jqueryはIEでうまく動作しません。 – Wenn
私はそれは私が間違ってスクリプトを掲示することを私に指摘されている。..笑hereを読んでjQueryの無料
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;
});
}
であるとして、これは新しい答えを正当化する感じ
// 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;
}
。このような文字列があるとします。
<document>
<value type="people">
<name>
John
</name>
</value>
<value type="vehicle">
<name>
Ford
</name>
</value>
</document>
その後
var xmlDocument = $.parseXML(str);
$(xmlDocument).find("value[type='people'] name").text()
私たちは、文字列 'ジョン戻ってきます。
しないでください。それは失礼です。その属性によってそれをつかむ前に要素に話してみてください。真剣に、あなたの質問に詳しいことができますか?あなたは何を試しましたか、結果は何でしたか? –
jquery.find( "node [id = '1']")の代わりにjavascriptを使用して要素を取得しようとしています – Wenn
タイトルに「Javascript:」というプレフィックスを付けないでください。それはタグのためのものです。 –