-2

我需要从字符串中解析 html 的最佳方法,我尝试过 .html(); 它不起作用。我需要它在 cdata 变量上。

$(document).ready(function () {
var anOpen = [];
var oTable = $('#table_id').dataTable();

$('#table_id tbody').on('click', 'tr', function (e) {
    var nTr = this;
    var i = $.inArray(nTr, anOpen);
    var cdata = this.cells[1];

    console.log(cdata);
    if (i == -1) {
        $(this).addClass('row_selected');
        var nDetailsRow = oTable.fnOpen(nTr, fnFormatDetails(oTable, nTr, 1), 'details');
        $('div.innerDetails', nDetailsRow).slideDown();
        anOpen.push(nTr);
    }
    else {
        $(this).removeClass('row_selected');
        $('div.innerDetails', $(nTr).next()[0]).slideUp(function () {
            oTable.fnClose(nTr);
            anOpen.splice(i, 1);
        });
    }
});
4

3 回答 3

0

html()如果您尝试从元素中获取数据,这是要走的路。

$(document).ready(function(){
    var html_str = $("#foo").html();
    alert("Your HTML is: " + html_str); 
});

见:http: //jsfiddle.net/4q6AZ/

如果您希望去除所有 HTML 标签,您可以考虑:

var html_string = '<h1>Test</h1><p>A paragraph with a <a href="link">link</a></p>';
var regex = /<(\/?)[a-zA-Z0-9][^>]*>/g;
var stripped = html_string.replace(regex, '');
$("#result").html(stripped);

见:http: //jsfiddle.net/Y6q2j/5/

于 2013-09-19T17:47:19.990 回答
0

首先,您应该使用$(this)而不是 javascript this。只是为了连贯性,当您可以使用 jQuery 实现它时,最多尝试使用 jQuery。

使用 jQuery 你可以做

$myTd = $(this).find("td").get(1) ;

$myTd.text()在这里给出你的文字。见http://api.jquery.com/text/

使用 javascript,您想获取 td 标记的内部内容...因此this.cells[1].innerHTML返回标记的 innerHTML,在您的情况下是您的文本。

于 2013-09-19T17:50:32.160 回答
0

Jquery.text()将返回文本而不是 HTML 元素。http://api.jquery.com/text/

于 2013-09-19T17:52:19.977 回答