jQuery:<img/>元素即时

时间:2009-11-17 17:02:19

标签: jquery dom on-the-fly

这是我的代码中有问题的部分,在.each(function(){})中运行;

$('img','<div>'+ed.selection.getContent({format: 'html'})+'</div>').each(function(){  
  $img=$('<img/>').attr('src',$(this).attr('src'));
  alert($('<p>'+$img+'</p>').html());
  if ($(this).attr('height').length>0){
    $img.attr('height',$(this).attr('height'));
  }
  if ($(this).attr('width').length>0){
    $img.attr('width',$(this).attr('width'));
  }
  alert($img.html());
});

首先,我正在使用html格式选择的tinyMCE内容,这很好,因为jQuery正确识别它。 $ img.html()返回空值,不是未定义但只是空白。测试了FF 3.6和IE8。有人可以解释一下吗?

4 个答案:

答案 0 :(得分:2)

html()函数仅返回元素的内容。由于<IMG>在技术上是空的,因此您将获得一个空字符串。

如果你有这个:

<span>The text</span>

并且您要求$span.html(),您只需The text,而没有附带标记。

答案 1 :(得分:1)

如果您有兴趣访问<img>的内容,请查看Question number 298049

答案 2 :(得分:0)

.html()为您提供元素的innerHTML,即内部的内容。 <{1}}里面没有任何东西 - 它是一个空元素。

你有正确的想法,包装它并采用内部HTML。

答案 3 :(得分:0)

图像元素没有任何内部HTML,因此该方法不能返回任何内容。