我正在编写一个书签脚本来提高我的工作流程。我的工作的一部分是获取正确的信息放入电子邮件中。我喜欢JavaScript和jQuery,因此我正在尝试使用这个库来简化我的工作。
我针对的网站有特别奇怪的标记语言。我需要捕获匹配标签后的文本,并在下一个标签之前。这一切,奇怪的是,都在一个P标记内。我不知道为什么网站的开发人员决定使用标签,我也无法修改标记,所以这不是一个选项。我已经搜索了整个网络,但还没有找到适合我特定情况的工作方法。
我创建了一个jsFiddle,演示了我想要使用相同标记和CSS来做的事情。我可以轻松访问标签,我已经使用了几种不同的方法来达到这个目的(在fiddle中注释掉了),但我仍然无法正确“捕获”两个标签之间的文本。这段文字最终将被放置到警报中,以便我快速复制它。我尝试过使用.nextUntil,但没有成功。
基本上,它应该是这样的:
<label>item 1</label> Content to capture
<br><br>
<label>item 2</label> Don't capture this...
我担心我的尝试失败的原因是因为(我认为)
nextUntil()
会尝试使用初始选择器查找下一个对象,所以它会查找下一个标签,而不是中间的文本。 我已经尝试过使用 $('selector').parent().nextUntil('label')
,但也没有成功。
这是一个有效的示例:
$(document).ready(function(){
//$('p label:eq(0)')afterUntil('<br>').css('color', 'red');
//$('p').find($('label:contains("item 1")')).nextUntil("<label>").css('color', 'red');
$('p label:contains("item 1")').parent().nextUntil('label').css('color','red');
});
label {
display:inline-block;
width:25%;
font-weight:bold;
}
p {
font-family:arial;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>
<label>item 1</label> Capture me!<br><br>
<label>item 2</label> Don't capture me
</p>
(fiddle: http://jsfiddle.net/1c2LpzrL/1/)