以html的形式从变量中提取数据

时间:2017-02-03 07:50:39

标签: javascript

我从服务器请求数据并以

的形式获得
 <tr>
    <td style='text-align:center;' sorttable_customkey='0'>
        <div ID='greencir' class='colcir' title='Online now'></div>
    </td>
    <td class='allymemtoolt' sorttable_customkey='1' title='Leader'>Leader</td>
    <td class='playerblink allymemtoolt' title='abc'>abc</td>
    <td class='allymemtoolt' sorttable_customkey='7' title='king'>king</td>
    <td class='allymemtoolt sorttable_numeric' style='text-align:center;' title='17'>17</td>
</tr>
<tr>
    <td style='text-align:center;' sorttable_customkey='1'>
        <div ID='greycir' class='colcir' title='Offline'></div>
    </td>
    <td class='allymemtoolt' sorttable_customkey='2' title='Second Leader'>Second Leader</td>
    <td class='playerblink allymemtoolt' title='xy'>xy</td>
    <td class='allymemtoolt' sorttable_customkey='7' title='slave'>slave</td>
    <td class='allymemtoolt sorttable_numeric' style='text-align:center;' title='13'>13</td>
</tr>

如何从td中提取标题,因为它不在DOM中.children()不起作用

5 个答案:

答案 0 :(得分:0)

如果该响应保存在变量res中,那么您只需将其提供给jquery并解析它。即

之类的东西
$(res).find("tr").each(function(v,k) { $(v).attr("title") })

答案 1 :(得分:0)

由于数据不在DOM中,因此您可以尝试以下解决方案:

 var tblData='<table>'+yourDataVariable+'</table>'
 $(tblData).find("tr").each(function(){
   console.log($(this).find("td").attr("title"));
 });

您将在控制台中看到所有标题。

答案 2 :(得分:0)

由于您从服务器获得了这些数据,我假设您将其作为AJAX响应。如果我是对的,那么你可以有这样的标签:

var firebasePromise = new Promise(function(resolve, reject) {

    // Do your database tasks, request data

    if(data was returned) {
        resolve(here you return your data);
    }
    else {
        reject(here you throw an error);
    }
});

firebasePromise.then(function() { 
    // this part deals with the resolved promise
    // so you can use your data here
}).catch(function() {
    // in here you handle your error that was returned by reject
})

你可以像这样设置它的内部HTML:

<div id="foobar"></div>

之后您可以阅读document.getElementById("foobar").innerHTML = yourResponse; 元素:

td

指定您对document.querySelectorAll("td div[title]") div元素内的title元素感兴趣。

答案 3 :(得分:0)

您可以使用jQuery .find()查找html字符串中的元素,.map()使用您的选择器从元素数组中获取值,请在下面的代码段中找到更多信息

&#13;
&#13;
debugger;
var dynamichtml =" <tr> <td style='text-align:center;' sorttable_customkey='0'> <div ID='greencir' class='colcir' title='Online now'></div> </td> <td class='allymemtoolt' sorttable_customkey='1' title='Leader'>Leader</td> <td class='playerblink allymemtoolt' title='abc'>abc</td> <td class='allymemtoolt' sorttable_customkey='7' title='king'>king</td> <td class='allymemtoolt sorttable_numeric' style='text-align:center;' title='17'>17</td></tr><tr> <td style='text-align:center;' sorttable_customkey='1'> <div ID='greycir' class='colcir' title='Offline'></div> </td> <td class='allymemtoolt' sorttable_customkey='2' title='Second Leader'>Second Leader</td> <td class='playerblink allymemtoolt' title='xy'>xy</td> <td class='allymemtoolt' sorttable_customkey='7' title='slave'>slave</td> <td class='allymemtoolt sorttable_numeric' style='text-align:center;' title='13'>13</td></tr>"

var found = $(dynamichtml).find(".colcir");
var titleattr = jQuery.map( found, function( a ) {
  return $(a).attr("title");
});

console.log(titleattr);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 4 :(得分:0)

您可以通过以下方式获取属性值:document.querySelector('#yourID').getAttribute('yourAttribute')