-2

私は Greasemonkey スクリプトを作成していますが、これは単純なことを行う必要があります:<h2>要素 (常にページ上に 1 つだけ) と<h3>要素の最初の出現 (それらのいくつかまたはまったくない) の間に特定の文字列がある場合、その後...(私はすでにこの部分を行っています)。

条件付きで助けていただければ幸いです。

4

4 に答える 4

2
var masterString = document.body.innerHTML;
var start = masterString.indexOf('<h2>'); 
var end = masterString.indexOf('<h3>'); // Will find the position of first occurance of h3 - if any

if (end <0)
// there is no h3
else {
  var searchMe = masterString.substr(start,end);  // now this is the portion of your HTML body that you want to look for a string match
  var numberOfOccurances = searchMe.match(/yourString/g);
}
于 2012-10-08T16:05:28.613 に答える
2

今、たまたま Mikhail が取り組んでいるコードに精通しているだけです。

基本的な構造は、

<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>

文字列は 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>

h3 に関しては、存在する場合と存在しない場合がありますが、兄弟ではないため、実際には問題ではありません。:) 私たちの質問に答えるために時間を割いていただきありがとうございます。

于 2012-10-08T21:36:49.617 に答える
0

試しましたgetElementsByTagNameか?

于 2012-10-08T15:56:10.793 に答える
0
//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
}

https://developer.mozilla.org/en-US/docs/DOM/Node.textContent

https://developer.mozilla.org/en-US/docs/DOM/element.getElementsByTagName

于 2012-10-08T16:02:12.233 に答える