Javascript(或jquery)来获取文本区域值的每个图像标记
Javascript (or jquery) to get every image tag of a textarea value
所以假设我有一个文本区域,其值为:
<p>..random content..</p>
<img src="myimage1.jpg" />
<p>..random content..</p>
<img src="myimage2.png" />
<p>..random content..</p>
我想检查每个img标记的出现情况,并将src存储在一个数组中。类似这样的东西:
function img_find() {
var imgs = // the result of the checking of the textarea
var imgSrcs = [];
for (var i = 0; i < imgs.length; i++) {
imgSrcs.push(imgs[i].src);
}
return imgSrcs;
}
我该如何做到这一点?
已解决
通过将其附加到另一个隐藏的div,类似于以下内容:
$('#hiddenContent').append $('textarea[name=content]').val() $img
= $('#hiddenContent').find('img') $("#hiddenContent > img").each (i, ele) ->
html = '<div class="image">
<img src="' + $(ele).attr('src') + '" class="thumbnail" width="100" title="Click to remove" />
<p>Image location: <b>' + $(ele).attr('src') + '</b> (copy <b>bolded</b> text to use on your content)</p>
<p><small>click image to remove</small></p>
</div>'
$('.contentImages').append html
function getSrc(textarea) {
var temporaryElement = document.createElement('div');
temporaryElement.innerHTML = textarea.value;
var images = temporaryElement.getElementsByTagName('img');
var output = [];
for (var i = 0; i < images.length; i++) {
output.push(images[i].src);
}
return output;
}
console.log(getSrc(document.getElementById('textarea')));
更新!
您可以使用CSS选择器querySelectorAll()
https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll
例如使用lodash unescape
<textarea id="content">
<p>..random content..</p>
<img src="myimage1.jpg" />
<p>..random content..</p>
<img src="myimage2.png" />
<p>..random content..</p>
</textarea>
<script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/3.3.0/lodash.min.js"></script>
<script>
function img_find(id) {
var dom = document.getElementById(id);
var e = document.createElement('div');
e.innerHTML = _.unescape(dom.innerHTML); // Or use regex to replace < to < and > to >
var imgs = e.querySelectorAll('img');
var srcCollection = [];
for (var i = 0; i < imgs.length; i++) {
srcCollection.push(imgs[i].src);
}
return srcCollection;
}
img_find('content'); // ["myimage1.jpg", "myimage2.jpg"]
</script>
这是您应该做的,使用正则表达式:
JSFIDDLE:http://jsfiddle.net/ewh8qe0t/1/
function img_find() {
var imgs = '<p>..random content..</p><img src="myimage1.jpg" /><p>..random content..</p><img src="myimage2.png" /><p>..random content..</p>';
var regex=/src="([A-z]+'d*'.[A-z]{3})"/g;
var imgSrcs = [], found;
while (found = regex.exec(imgs)) {
imgSrcs.push(found[0].split('=')[1].replace(/"/g,''));
}
return imgSrcs;
}
alert(img_find());
相关文章:
- 不能在图像中的地图标记中使用花式框jquery插件的区域标记
- 如何使用JavaScript/jQuery选择图像的多边形区域
- 如何将 ng-repeat 与图像映射区域标签一起使用
- 如何在文件打开和调用图像区域选择时获取原始图像大小
- 地图<区域>未显示背景图像
- 如何创建具有滚动背景图像的可滚动文本区域
- 用于图像上映射区域的Bootstrap Popover/Tooltip
- Javascript(或jquery)来获取文本区域值的每个图像标记
- 缩小后的大图像上的Jcrop圆形选择显示预览选择区域中的全尺寸图像
- 任何比较两个不同位图图像并在javascript中检测不同区域的方法
- 是否可以使用图像数据设置画架命中区域
- 获取图像可见区域状态,以在画布中将图像设置在先前拖动的位置
- 单击以将所有图像 HTML 标记插入到文本区域
- 图像映射区域无法触发单击事件.afer最大化寡妇或恢复窗口单击事件触发
- 如何使绝对定位的图像区域地图可以用鼠标点击
- 响应式图像区域地图与螺旋菜单冲突
- 高亮显示图像区域-单击链接时
- 当我的模态窗口关闭时,从图像中删除图像区域选择
- 在HTML5图像画布中裁剪图像区域
- 从主图像区域打开fancybox中的特定图像