【问题标题】:jQuery: Get inner HTML from a HTML code within a variablejQuery:从变量中的 HTML 代码获取内部 HTML
【发布时间】:2014-04-09 16:40:55
【问题描述】:

我有一个包含 html 元素的变量:

alert(aData[3]);

给我:

BLA BLA BLA
<div style="display: none">
 <table>....</table>
</div>

我试图弄清楚如何通过 jQuery 从变量 aData[3] 获取 div-tag 内的内容。我尝试了各种方法:

elem = $(aData[3]).find("div");
alert(elem.html());

// OR
elem = $(aData[3]).find("div");
alert(elem[0].html());

// OR
elem = $(aData[3]).find("div");
alert($(elem[0]).html());

// OR
elem = $(aData[3], 'div');
alert(elem.html());

无法让其中任何一个工作。如何正确的版本? :( 非常感谢

【问题讨论】:

  • 您不应该以; 结束display: none 吗?
  • @DejaVu 没有可遵循的样式,所以没关系。
  • 我不明白你想说什么@Deja Vu,但没关系,正如 oGeez 澄清的那样,反正这可能无关紧要
  • @tim 他的意思是非常正确的,样式应该用分号分隔。尽管块中的最后一个属性不需要。更多here
  • @tim — 他建议您在 CSS 中使用 ; 作为规则终止符,而不是作为规则分隔符。它与您的实际问题无关。

标签: javascript jquery html jquery-selectors


【解决方案1】:

find 在 jQuery 对象中查找 descendants 元素,但 div 是 HTML 中最高级别的元素(它不是任何元素的后代)。

只是不要使用find

elem = $(aData[3]);
alert(elem.html());

【讨论】:

  • 谢谢,很短,很干净,很好
【解决方案2】:

你需要用另一个 dom 对象包裹你的字符串才能使用.find()

elem = $('<div />',{
  html: aData[3];
}).find("div");
alert(elem);

【讨论】:

  • 然后elem.html() 还是什么?
  • 如果你想要 elem 的 html,你会做 .html()
【解决方案3】:

您可以使用parseHTML 将字符串转换为DOM 元素数组。

【讨论】:

  • 谢谢,但在这种情况下会产生开销 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多