用jquery获取开始标记

时间:2011-07-26 08:36:34

标签: jquery tags

我有一个问题,我需要格式化以下列格式存储在客户端缓存中的html:

html[0] = '<tr>'
html[1] = '<td>text</td>'
html[2] = '<td>text</td>'

在正常情况下,我直接使用dom并且不需要靠近此缓存,但有时我需要更新它...

html[1] = '<td><a href="">text</a></td>'

由于开头'tr'的'不寻常'存储,我能以某种方式构建一个新的'tr',操纵它,然后只渲染开始标记?

$(html[0] + '</tr>');

我知道这可以用regexp完成,但很想知道我是否可以使用jquery技术。

1 个答案:

答案 0 :(得分:0)

HTML不是XML。在HTML中,这是完全合法的:

<table>
    <tr>
        <td>Text</td>
        <td>Text</td>
    <tr>
        <td>Text</td>
        <td>Text</td>
</table>

这意味着您无需使用<tr>关闭开头</tr>括号。

您可以使用W3C Markup Validation Service检查HTML的有效性。

你可以用这样的锚包装文本:

<!doctype html>
<html>
<head>
    <title>Wrap td text</title>
    <script type="text/javascript" 
        src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.2.min.js"></script>
    <script type="text/javascript">
        $(function () {
            var html = [];
            html[0] = '<tr>';
            html[1] = '<td>text</td>';
            html[2] = '<td>text</td>';
            $(html.join(""))
                .children("td")
                    .each(function () {
                        $(this).html($('<a href="">' + $(this).text() + '</a>'));
                    })
                    .end()
                .appendTo("table");
        });
    </script>
</head>
<body>
    <table>
    </table>
</body>
</html>