【问题标题】:jQuery Parsing HTML results in Object doesnt support Property errorjQuery Parsing HTML results in Object does not support Property 错误
【发布时间】:2014-09-04 09:23:24
【问题描述】:

我必须将表格转换为 csv 我正在使用以下逻辑连接每个 td 的字符串

 var $text=(table.rows[0].cells[i].innerHTML.split(", ").join("")).toString();

假设 $ 文本实际上包含 <font class="Major">testcasedff</font>;

当我尝试使用 Find 功能提取数据时

var data=$text.find('font').text();

它实际上不起作用。我使用 IE9 作为测试浏览器,我收到以下脚本错误

行:300 错误:对象不支持“查找”属性或方法

请参考下面的小提琴

【问题讨论】:

  • $text 是字符串...然后您尝试在其上使用find
  • 你需要使用$($text).find(...)
  • $text 包含 Test Subject1 是一个字符串
  • 您使用了错误的字符来分隔您的代码以在此问题中显示...请参阅我的编辑 :)
  • var data=$($text).find('font').text();它没有给出任何结果。

标签: javascript jquery json parsing


【解决方案1】:

试试:

在下面的行中,JQuery 将 HTML 元素从字符串转换为 JQuery 对象,因此您的操作将被简化:

var fontObj = $("<font class='Major'>this is a test</font>");
var $textfontObj.text();

在纯 javascript 中,您需要创建一个虚拟元素,从字符串中插入 HTML 元素,然后获得所需的结果:

var targetEleContainer = document.createElement('div');
targetEleContainer.innerHTML = "<font class='Major'>this is a test</font>";
var out2=(targetEleContainer.firstChild).innerHTML;

再见

【讨论】:

  • 对不起@AbinayaDevarajan,它仅在您使用 JQuery 时才有效。相反,如果你只使用没有 JQuery 的 javascript,你是对的,它不起作用!我想您对将字符串转换为 JQuery 对象然后获取属性的简单快速方法感兴趣。
  • 嗨@AbinayaDevarajan 再试一次你的演示:我改变了它并添加了我的代码:检查jsfiddle.net/8zrhgy6v/6上的“这是”@让我知道
【解决方案2】:

textContent dom 属性和解析 html 的工作原理

  var $text="<font class='Major'>this is a test</font>";

  var result='';
   var data=$.parseHTML($text);
            $.each(data, function (i, el) {
            result += el.textContent;
            });

 alert(result);

请检查小提琴

http://jsfiddle.net/Abinaya_WEBGurl/8zrhgy6v/3/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 1970-01-01
    • 2018-01-23
    • 2022-08-03
    • 1970-01-01
    相关资源
    最近更新 更多