我有以下字符串。我不知道我是否称它为XML格式。这就是我使用部分XML这个词的原因。如果我使用了错误的术语,请纠正我。
<grid name=\"resultset\" object=\"1\" jump=\"name\" select=\"1\" icon=\"1\" preview=\"1\">
<row name=\"result\" id=\"accountid\">
<cell name=\"name\" width=\"300\" />
<cell name=\"telephone1\" width=\"100\" />
<cell name=\"primarycontactid\" width=\"150\" />
<cell name=\"accountprimarycontactidcontactcontactid.emailaddress1\" width=\"150\" disableSorting=\"1\" />
<cell name=\"statecode\" width=\"100\" />
</row>
</grid>
我想从name
代码cell
i.e name, telephone1, primarycontactid, accountprimarycontactidcontactcontactid.emailaddress1, statecode
属性的值
有人可以建议我如何使用javascript或jquery获取上述值吗?
应用以下cocept后出错:如果元素数量更多
,则会发生这种情况var str = "<grid name=\"resultset\" object=\"1\" jump=\"name\" select=\"1\" icon=\"1\" preview=\"1\"><row name=\"result\" id=\"accountid\"><cell name=\"name\" width=\"300\" /><cell name=\"telephone1\" width=\"100\" /><cell name=\"primarycontactid\" width=\"150\" /><cell name=\"accountprimarycontactidcontactcontactid.emailaddress1\" width=\"150\" disableSorting=\"1\" /><cell name=\"statecode\" width=\"100\" /></row></grid>";
var tmpDiv = document.createElement('div');
tmpDiv.innerHTML = str;
var cells = tmpDiv.getElementsByTagName('cell')
var values = [];
for(var i = 0; i<cells.length; i++) {
values.push(cells[i].getAttribute('name'));
}
答案 0 :(得分:1)
从字符串创建元素,然后访问子元素及其属性:
var node = '<grid name="resultset" object="1" jump="name" select="1" icon="1" preview="1"><row name="result" id="accountid"><cell name="name" width="300" /><cell name="telephone1" width="100" /><cell name="primarycontactid" width="150" /><cell name="accountprimarycontactidcontactcontactid.emailaddress1" width="150" disableSorting="1" /><cell name="statecode" width="100" /></row></grid>';
document.body.innerHTML = node;
var grid = document.getElementsByTagName('grid');
alert(grid[0].getAttribute('name'));
答案 1 :(得分:0)
for(var i=0;i<5;i++){
var strcurrname= document.getElementsByTagName("cell")[i].name;
}
试试这个..
答案 2 :(得分:0)
var str = "<grid name=\"resultset\" object=\"1\" jump=\"name\" select=\"1\" icon=\"1\" preview=\"1\"><row name=\"result\" id=\"accountid\"><cell name=\"name\" width=\"300\" /><cell name=\"telephone1\" width=\"100\" /><cell name=\"primarycontactid\" width=\"150\" /><cell name=\"accountprimarycontactidcontactcontactid.emailaddress1\" width=\"150\" disableSorting=\"1\" /><cell name=\"statecode\" width=\"100\" /></row></grid>";
var tmpDiv = document.createElement('div');
tmpDiv.innerHTML = str;
var cells = tmpDiv.getElementsByTagName('cell')
var values = [];
for(var i = 0; i<cells.length; i++) {
values.push(cells[i].getAttribute('name'));
}
console.log(values);
我认为这就是你想要的。 您也可以进行正则表达式搜索。
REGEX
var str = "<grid name=\"resultset\" object=\"1\" jump=\"name\" select=\"1\" icon=\"1\" preview=\"1\"><row name=\"result\" id=\"accountid\"><cell name=\"name\" width=\"300\" /><cell name=\"telephone1\" width=\"100\" /><cell name=\"primarycontactid\" width=\"150\" /><cell name=\"accountprimarycontactidcontactcontactid.emailaddress1\" width=\"150\" disableSorting=\"1\" /><cell name=\"statecode\" width=\"100\" /></row></grid>";
var reg = /<cell name=[\\]?"([^\\"]*)[^>]*>/mgi;
var item;
while ((item = reg.exec(str)) !== null) {
console.log(item[1]);
}