2017-02-03 8 views
0

以下はHTMLの番号ですが、最後の入れ子になっているSpanのテキストではなく番号のみを取得する方法はわかりません。Aリンクの中間スパンからinnerTextを抽出します

<li class="off" id="defense1"> 
    <div class="item_box defense401"> 
     <div class="buildingimg"> 
      <a title="" class="detail_button tooltip js_hideTipOnMobile slideIn" id="details401" href="javascript:void(0);" ref="401"> 
       <span class="ecke"> 
        <span class="level"> 
         <span class="textlabel"> 
          Rocket Launcher 
         </span> 
         20.000 
        </span> 
       </span>     
      </a> 
     </div> 
    </div> 
</li> 

次のVBAコードを使用すると、私はSpan I wantとinner spanの両方からテキストを取得します。 #私はちょうど#を引き出すことができますか?

Dim IE as InternetExplorer 

Set IE = new InternetExplorer 
IE.document.getElementById("details401").innerText 

中間のスパンのinnerTextだけをフィルタリングするVBAコードが必要です。

答えて

0

thisを使用してセレクタのコンテンツを無視してみてください。

$.fn.ignore = function(sel){ 
    return this.clone().find(sel||">*").remove().end(); 
}; 

これは私が得た解決策です。

<!DOCTYPE html> 
 
<html lang="en-US"> 
 

 
<head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
    <script> 
 
     $(document).ready(function() { 
 
      var text = $('#details401 .ecke .level').ignore("span").text(); 
 
      console.log(text); 
 
     }); 
 
     $.fn.ignore = function (sel) { 
 
      return this.clone().find(sel || ">*").remove().end(); 
 
     }; 
 
    </script> 
 
</head> 
 

 
<body> 
 
    <li class="off" id="defense1"> 
 
     <div class="item_box defense401"> 
 
      <div class="buildingimg"> 
 
       <a title="" class="detail_button tooltip js_hideTipOnMobile slideIn" id="details401" href="javascript:void(0);" ref="401"> 
 
        <span class="ecke"> 
 
        <span class="level"> 
 
         <span class="textlabel"> 
 
          Rocket Launcher 
 
         </span> 20.000 
 
        </span> 
 
        </span> 
 
       </a> 
 
      </div> 
 
     </div> 
 
    </li> 
 
</body> 
 

 
</html>

+0

申し訳ありませんが、しかし、私はテキストを引くことができVBAコードが必要です。 – Rdster

-1

あなたは未テスト

+0

そのVBAですか? – Rdster

0

をしたい番号を取得するためにvar numberYouWant = $(".level").text().replace($(".textlabel").text(), "").trim();を使用する場合があります述べたように

Dim sp1, sp2 

Set sp1 = IE.document.getElementById("details401").getElementsByClassName("level")(0) 
Set sp2 = sp1.getElementsByClassName("textlabel")(0) 

Debug.Print Trim(Replace(sp1.innerText, sp2.innerText, "")) 
関連する問題