在html字符串上拆分图像标记

时间:2014-07-27 06:10:36

标签: javascript jquery html regex split

代码:

<div id="start">    
    <p>"hi split html string"<p><br>"now"
    <img class="image1" src="some src" master_src="some src" master_w="400" master_h="320">
    "second tag is coming"<br><img class="image2" src="some src" master_src="some src" master_w="400" master_h="320"><h1>end here</h1>
</div>

输出:

<p>"hi split html string"<p><br>"now" ,   "second tag is coming"<br> , <h1>end here</h1>

我如何实现这一目标?什么可以是正则表达式这个图像类,以便使用拆分功能(或任何更好的方式)?请给我一个演示

2 个答案:

答案 0 :(得分:1)

我不完全确定我理解您的最终目标,但如果您想从HTML中删除图片,则可以使用DOM。首先创建一个虚拟元素并将其innerHTML设置为HTML字符串:

var dummy = document.createElement('div')
dummy.innerHTML = html

现在你有一个div包含你的HTML结构作为DOM元素。但是,你想要的是你的div,而不是假的:

var div = dummy.children[0]

然后循环孩子,检查它是否是图像并删除它,如果是这样的话:

for (var i=0; i<div.children.length; i++) {
  var child = div.children[i]
  if (child.tagName == 'IMG') {
    div.removeChild(child)
  }
}

您可以将div附加到DOM:

document.body.appendChild(div)

或者您可以将HTML作为字符串取回而不使用图像:

div.innerHTML
//^ <p>"hi split html string"</p><br>"now""second tag is coming"<br><h1>end here</h1>

另请注意,您的HTML无效,您没有使用</p>关闭该段落,因此如果上述内容无效,则上述内容无效。

答案 1 :(得分:1)

为什么你多次问同一个问题?
这是你回答

  $('#start').find('img').each(function(index){


    var split_text = $(this).html().split(/<img[^>]*>/)[index];
    alert(split_text)
    });