Javascript Greasemonkey:在两个元素之间查找字符串
我正在写一个Greasemonkey脚本,它应该做一件简单的事情:如果Javascript Greasemonkey:在两个元素之间查找字符串,javascript,greasemonkey,string-matching,Javascript,Greasemonkey,String Matching,我正在写一个Greasemonkey脚本,它应该做一件简单的事情:如果元素(在页面上总是只有一个)和元素的第一次出现(可以是多个,也可以没有)之间有某个字符串,那么。。。(我已经完成了这部分) 我非常感谢您对条件的帮助。您是否尝试过getElementsByTagName?//获取所有H2元素 //get all the H2 elements var h2 = document.getElementsByTagName("h2"); //Just in case there are more
元素(在页面上总是只有一个)和
元素的第一次出现(可以是多个,也可以没有)之间有某个字符串,那么。。。(我已经完成了这部分)
我非常感谢您对条件的帮助。您是否尝试过
getElementsByTagName
?//获取所有H2元素
//get all the H2 elements
var h2 = document.getElementsByTagName("h2");
//Just in case there are more than one...
for(var i = 0; i < h2.length; i++){
//check for the certain string
if(h2[i].textContent == "SOME TEXT"){
//get the first h3 element and do something...
var h3 = document.getElementsBtTagName("h3")[0]; //first occurrence of H3
//DO SOMETHING
}
var h2=document.getElementsByTagName(“h2”);
//以防万一不止一个。。。
对于(变量i=0;i
var masterString=document.body.innerHTML;
var start=masterString.indexOf(“”);
var end=masterString.indexOf(“”);//将找到h3第一次出现的位置-如果有的话
如果(end现在我恰好熟悉米哈伊尔正在研究的代码
基本结构如下:
<div>
<div>
<h2>Something</h2>
<td>We want to search for the string here</td>
<td>We want to search for the string here</td>
</div>
<div>
<h3>Something else</h3>
<td>May contain the same string, but we are only interested if it contains in previous div .</td>
<td>May contain the same string, but we are only interested if it contains in previous div .</td>
</div>
</div>
某物
我们想在这里搜索字符串
我们想在这里搜索字符串
别的
可能包含相同的字符串,但我们只感兴趣,如果它包含在上一个div中。
可能包含相同的字符串,但我们只感兴趣,如果它包含在上一个div中。
字符串不是h2的子级,因此我认为getElementsByTagName不起作用。不幸的是,实际上有数百个具有相同类id的div层。在这种情况下,标题是代码中唯一唯一的细节。因此,我认为最好的方法是先找到h2,转到其父级并将文本存储为字符串。然后搜索文本中的字符串。如下所示
<script>
var searcharea = jQuery('h2').parent('div').text();
var searchstring = "superstring";
if( searcharea.indexOf( searchstring ) != -1 )
alert("exchange alert to your own things");
</script>
var searcharea=jQuery('h2').parent('div').text();
var searchstring=“superstring”;
if(searcharea.indexOf(searchstring)!=-1)
警惕(“对自己的东西交换警惕”);
至于h3,它可能存在,也可能不存在,但因为它不是兄弟姐妹,所以这并不重要谢谢大家花时间回答我们的问题。我已经完成了这部分,那么问题是什么?至少,展示一下你所说的HTML结构。第一个
是嵌套的吗?是兄弟姐妹吗?其他什么?是的,我相信这是我应该使用的。不幸的是,我对JavaSc有非常基本的了解cript,所以如果你能详细说明…:-)jQuery不是这个问题的一部分,你也没有说明如何将它添加到GM脚本中(这不是新的脚本编写者所特有的)。因此,更改这一行。那么,这个答案可能是最好的答案,因为问题描述含糊不清,所以+1…但是,如果代码是大写的,会发生什么呢(
)等?;-)如果节点具有属性会发生什么情况?例如
,或者
之前有一个
?您完全正确。在很多情况下,这不会起作用,或者会因为解析html源代码而产生问题。但在某些情况下,这可能是一个快速而肮脏的解决方案。
<script>
var searcharea = jQuery('h2').parent('div').text();
var searchstring = "superstring";
if( searcharea.indexOf( searchstring ) != -1 )
alert("exchange alert to your own things");
</script>