Javascript:点击网页上的链接,使用范围文字作为参考

时间:2015-08-09 06:01:49

标签: javascript html css

很抱歉,如果这是一个愚蠢的问题,但我对HTML和javascript很新。

我正在尝试点击没有唯一标识符的网页上的按钮/链接(至少这是我所看到的)。 以下是HTML代码的摘要。 是否可以在'a'元素下面引用跨度值/文本(例如“搜索事件”,“新事件”)?

或者还有其他方法可以解决这个问题吗?

"<div class="item EP lvl1 " navmode="1" artype="NavBarItem" arid="app1598" lvl="1" arwindowid="0" style="height: 25px; overflow: visible; border-top: medium none; border-bottom: medium none;">

    <a class="btn" style="z-index: 1;" onclick="javascript:CallARGHPD_58INC_58AppListEntryPointamrrm6100EPFunc(false, this);">

        <span class="navLabel lvl1 ">

            New Incident

        </span>
    </a>

</div>
<div class="item EP lvl1 " navmode="1" artype="NavBarItem" arid="app1599" lvl="1" arwindowid="0" style="height: 23px; overflow: visible; border-left: 1px solid rgb(…, 233); border-top: medium none; border-bottom: medium none;">

    <a class="btn" style="z-index: 1;" onclick="javascript:CallARGHPD_58INC_58AppListEntryPoint_95Searchamrrm6100EPFunc(false, this);">

                <span class="navLabel lvl1 ">

                    Search Incident

                </span>
            </a>
        </div>
    </div>

</div>"

修改

这是我到目前为止所做的:

  

通过引用ID并按标签名称过滤将整个表单存储到变量中,如下所示;

var links = IE.Document.getElementById("WIN_0_80077").getElementsByTagName("a");

基本上,表格如下所示,点击每个表格,如文件夹结构,以访问内部链接。

Form
  |  Incident Management
    |  New Incident (links to another page)
    |  Search Incident (links to another page)
  |  Problem Management
    |  New Problem (links to another page)
    |  Search Problem (links to another page)

每个都有span属性及其相应的文本,如大纲中所述。

  

点击每个按钮/链接导航到内部结构(例如,事件管理&gt;搜索事件)     - 我试图通过使用span文本作为参考(或任何可行的参考)循环链接来实现这一目标

for (link in links) {
    for (span in link.getElementsByTagName("span")) {
        if (condition) //validation for span text {
            span.click;
        }
    }
}

这甚至有意义吗?再次,抱歉,如果没有。感谢你的帮助。

更新

感谢您的建议。 它可能不是最好的解决方案,但至少,我能够通过以下方式实现出路。

// Reference the intended element/class/item
var link = objIE.Document.querySelectorAll('a[onclick="javascript:CallARGHPD_58INC_58AppListEntryPoint_95Searchamrrm6100EPFunc(false, this);"]');

// Do something with it (e.g. click the link)
link[0].click();

2 个答案:

答案 0 :(得分:0)

您可以在JavaScript中以多种方式执行此操作,但有一种方法是使用

按类引用span元素
var firstLabel = label[0].innerHTML;
var secondLabel = label[1].innerHTML;

这将返回班级&#39; navLabel&#39;

的所有元素

然后要引用单个标签,您可以这样做:

<!DOCTYPE html>
<html ng-app="demoapp">

<head>
    <title>My App</title>
    <link rel="stylesheet" href="style.css">
    <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet" />
    <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet">
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular-route.js"></script>
    <script src="//cdn.jsdelivr.net/angular.bootstrap/0.11.0/ui-bootstrap-tpls.min.js"></script>
    <script src="script.js"></script>
</head>

<body>
    <div ng-controller="TableCtrl" class="container">
        <div class="row">
            <div class="col-lg-12">
                <div class="">
                    <div class="table-responsive">
                        <div class="ng-data-table" ng-dt="Demo"></div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>

同样,有多种方法可以做到这一点,它只取决于你获得它们后你想要做什么。

答案 1 :(得分:0)

只需使用:

var label=document.getElementByClassName('navLabel lvl1');

label[0].value;     //New Incident
label[1].value;     //Search Incident