从A链接中的中间Span提取innerText

时间:2017-02-03 17:08:41

标签: html vba

以下是我必须从中获取数字的HTML,但不知道如何仅提取数字而不是最后一个嵌套的Span的文本。

<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和内部跨度中获取文本。我怎样才能拔出#?

Dim IE as InternetExplorer

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

我需要VBA代码来过滤中间Span的内部文本。

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

未测试:

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, ""))

答案 2 :(得分:-1)

您可以使用var numberYouWant = $(".level").text().replace($(".textlabel").text(), "").trim();获取所需的号码