在ul li层次结构中选择td的所有innerHTML

时间:2015-05-30 05:54:48

标签: javascript jquery html css

我有一个html结构如下 -

<ul id='abc'>
    <li>
        <table>
            <tbody>
                <tr>
                    <td>
                        A
                    </td>
                </tr>
            </tbody>
        </table>
    </li>
    <li>
        <table>
            <tbody>
                <tr>
                    <td>
                        B
                    </td>
                </tr>
            </tbody>
        </table>
    </li>       
    ...
    ...
</ul>

我想使用jquery将A,B,C ...值存储在数组中。请帮助...

6 个答案:

答案 0 :(得分:3)

您可以使用$.fn.map()

  

将数组或对象中的所有项目转换为新的项目数组。

var arr = $('#abc td').map(function(){
    return $(this).text();
}).get();

答案 1 :(得分:2)

这是你想要的:

var values = [];
$('ul li').find('td').each(function() {
  values.push($(this).html());
});

答案 2 :(得分:1)

你可以通过

的javascript来做到这一点
  

Element.getElementsByTagName()方法返回具有给定标记名称

的元素的实时HTMLCollection
var values = []
var tableUl = document.getElementById("abc"); 
var cells = tableUl.getElementsByTagName("td"); 
for (var i = 0; i < cells.length; i++) { 
    values.push( cells[i].textContent.trim()); 

}

fiddle

答案 3 :(得分:1)

这应该有效:

var values = $('ul#abc td').map(function() { return $(this).text(); });

答案 4 :(得分:1)

尝试使用.text()String.prototype.match()

var res = $("#abc td").text().match(/\w+/gi)

console.log(res)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<ul id='abc'>
    <li>
        <table>
            <tbody>
                <tr>
                    <td>
                        A
                    </td>
                </tr>
            </tbody>
        </table>
    </li>
    <li>
        <table>
            <tbody>
                <tr>
                    <td>
                        B
                    </td>
                </tr>
            </tbody>
        </table>
    </li>       
</ul>

答案 5 :(得分:0)

另一种方式是:

$("ul#abc li td:first-child").each(function () {
   //alert($(this).text());
   console.log($(this).text());
 });