2016-09-22 8 views
0

の終わりまで、私は、フォームの冗長な情報を私にオーバーロード職場でのWebページと対話:私はいくつかのJavaScriptコードを大好きだWebページ上のテキストを削除 - 文字列以下「>」スパン

Important text 
Other important text 
>> Not important 1 
>> Not important 2 
>> Not important 3 
Other important text 

Iは>の最初の発生から始まり、所与のスパンタグの終わりで終わるすべてのスパン内のすべてのテキストを削除することTampermonkeyで実行できること

疑似コード例:

var allSpanTags = document.getElementsByTagName('span');  

for(var thisSpanTag in allSpanTags){ 
    thisSpanTag.innerHTML.deleteStringBetween(index_of_first_">"_in_given_spans_inner_HTML , index_of_end_of_innerHTML_of_this_span_tag); 
} 

ウェブビーストの複雑さは、現在、私の母国語ではなくJavaScriptでこのプロジェクトで私を驚かせています。私はまた、私が最も効果的な方法で問題に近づいていることも不確実です。

ありがとうございます!

編集:自分のコードを特定のclassNameのスパンに適用して、ウェブページ上の他のものを破壊しないようにしました。このソリューションについて

var allSpans = document.getElementsByTagName("span"); 
for(var i = 0; i < allSpans.length; i++) { 
    try{ 
     if (allSpans[i].className.indexOf("textblock") > -1) { 
      allSpans[i].innerHTML = allSpans[i].innerHTML.replace(/&gt;.*/g, ''); 
     } 
    }catch(e){} 
} 
+1

あなたは 'document.getElementsByTagName ...' 'document.querySelectorAll( 'span.textblock')'とを交換する場合は、完全に 'for'ループを回避することができます。 – StardustGogeta

+0

ありがとう!これは私のclassName.indexOf haha​​よりもクールで洗練された機能です。あなたは説明することができます...私はまだ各要素の置換を実行するために、document.querySelectorAllからの結果リストをループするためにforループが必要な場合はありませんか? – RenderedNonsense

+0

編集中の 'for'ループは、ページ上のすべての' span'を反復する必要はなく、全体的な答えは私の解決策のフォーマットに従うことができます。 – StardustGogeta

答えて

2

Array.from(document.getElementsByTagName('span')).forEach(
 
    a => a.innerHTML = a.innerHTML.replace(/&gt;.*/g,'') 
 
);
<span>Please delete after the > sign here!</span><br> 
 
<span>Also, delete the sign > here!</span><br> 
 
<span>Don't > forget > me!</span>

どのように?

編集:今すぐdocument.querySelectorAll[*=] CSSセレクタで!

Array.from(document.querySelectorAll('span[class*=textblock]')).forEach(
 
    a => a.innerHTML = a.innerHTML.replace(/&gt;.*/g,'') 
 
);
<span class="atextblock">Please delete after the > sign here!</span><br> 
 
<span class="fun textblocks are not">Also, delete the sign > here!</span><br> 
 
<span class="whytextblock why">Don't > forget > me!</span><br> 
 
<span class="muahahahaha">> But not > here!</span>

+0

ありがとう!よく働く! – RenderedNonsense

+0

@Render私は助けてうれしい! :) – StardustGogeta

+2

関数のシグネチャである 'function(a、b、c)'は必要ないことだけを指摘してください。 'a'を参照して' a.innerHTML = ... 'を実行すれば、それはうまくいくでしょう。インデックスまたは配列参照自体を参照する必要はありません。 – wpcarro

関連する問題