我有一些标记,其中有img标签,有时在图像之间有一段。我想使用javascript(jQuery)来查找此元素(如果存在)。但是,此标记是通过CKEditor插入的,因此确切的标记可能会有所不同。
理想情况下,标记看起来像这样:
<img src="something.jpg">
<img src="something2.jpg">
<p>Some text</p>
<img src="something3.jpg">
<p>Some other text</p>
但它可能更像是这样:
<img src="something.jpg">
<br>
<p>Some text</p>
<img src="something2.jpg">
<p>Some text</p>
<img src="something3.jpg">
<br>
<p>Some text</p>
所以我可能需要创建一个img标签数组,遍历每个标签并在这个img标签和下一个标签之间找到
,无论它在哪里。我如何使用jQuery做到这一点?
可能是这样的:
var img_array = $('#container').find('img');
img_array.each(function(){
// Do something here
})
编辑:这是我最终如何做到的:
var img_array = $('#container').find('img');
img_array.each(function(){
var between = $(this).nextUntil('img');
var text = between.text();
})
nextUntil返回介于两者之间的一组元素。所以我只是将其剥离并仅保留简单文本。像cherrm一样工作! :)
答案 0 :(得分:1)
您只需使用nextUntil
。
例如,以下内容将匹配匹配图片与下一张图片之间的每个<p>
标记。
$('img[src="something.jpg"]').nextUntil('img', 'p');
<img src="something.jpg">
<br>
<p>Some text</p> <--
<img src="something2.jpg">
答案 1 :(得分:0)
您无法选择使用基本jquery选择器,例如$( "img + p" )
和$( "img + br + p" )
这将选择您要使用的元素。