0

这是我的代码有问题的部分,在 .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

4 回答 4

2

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

如果你有这个:

<span>The text</span>

而你要求$span.html(),你会得到只是The text,没有封闭的标签。

于 2009-11-17T17:08:02.473 回答
1

如果您有兴趣访问<img>的内容,请查看问题编号 298049

于 2009-11-17T17:27:23.713 回答
0

.html()给你一个元素的innerHTML,即它里面有什么。An<img>里面没有任何东西——它是一个空元素。

通过包装它并采用它的innerHTML,您就有了正确的想法。

于 2009-11-17T17:08:15.767 回答
0

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

于 2009-11-17T17:08:51.360 回答