Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Greasemonkey:在两个元素之间查找字符串_Javascript_Greasemonkey_String Matching - Fatal编程技术网

Javascript 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

我正在写一个Greasemonkey脚本,它应该做一件简单的事情:如果
元素(在页面上总是只有一个)和
元素的第一次出现(可以是多个,也可以没有)之间有某个字符串,那么。。。(我已经完成了这部分)


我非常感谢您对条件的帮助。

您是否尝试过
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>