在另一个元素中找到一个html,然后用Javascript单击它
本文关键字:html 一个 然后 单击 Javascript 元素 另一个 | 更新日期: 2023-09-27 18:06:56
我试图用javascript做一个点击html元素。我想要单击的<span>
可以称为id="tab-1275-closeEl",但每次关闭并再次创建时,名称中的数字都会发生变化。Under是元素周围html的一部分:
<a id="tab-1275" class="x-tab x-unselectable x-tab-after-title x-box-item x-tab-default x-noicon x-tab-noicon x-tab-default-noicon x-top x-tab-top x-tab-default-top x-closable x-tab-closable x-tab-default-closable x-closable-top x-tab-closable-top x-tab-default-closable-top x-active x-tab-active x-tab-default-active x-top-active x-tab-top-active x-tab-default-top-active selected"
tabindex="0" unselectable="off" hidefocus="on" role="button" aria-label="Documents" style="right: auto; left: 1px; top: 0px; margin: 0px;" draggable="true" href="javascript:void(0)">
<span id="tab-1275-btnWrap" class="x-tab-wrap" unselectable="on">
<span id="tab-1275-btnEl" class="x-tab-button">
<span id="tab-1275-btnInnerEl" class="x-tab-inner x-tab-inner-center" unselectable="on" style="line-height: normal; padding-top: 2px;" data-qtip="Window-Id: DocAce">
Documents
</span>
<span id="tab-1275-btnIconEl" class="x-tab-icon-el " style="" unselectable="on" role="img"></span>
</span>
</span>
<span id="tab-1275-closeEl" class="x-tab-close-btn" tabindex="0" title="Close Activity" role="button" aria-label="Close Activity"></span>
</a>
目前我只设法关闭它,如果我给它一个静态ID在我的代码:
if (HttpContext.Current != null)
{
using (Page handler = HttpContext.Current.Handler as Page)
{
if (handler != null)
{
string script = string.Format((IFormatProvider)CultureInfo.InvariantCulture,
"<script type='"text/javascript'">document.getElementById('"tab-1275-closeEl'").click();</script>");
handler.ClientScript.RegisterStartupScript(handler.GetType(), "closeOnSave", script);
}
}
}
我想点击的元素一直在改变ID,我没有办法预测它接下来会是什么。
data-qtip="Window-Id: DocAce">无论打开或关闭多少次,它都保持不变,并且是唯一的,但它在不同的元素中(尽管总是在一起)。
<span id="tab-1275-btnInnerEl" class="x-tab-inner x-tab-inner-center" unselectable="on" style="line-height: normal; padding-top: 2px;" data-qtip="Window-Id: DocAce">
Documents
</span>
简而言之,我如何搜索一个元素,看看它是否有一个span的值,然后点击不同的span,在同一元素与javascript。
我不能改变任何html或javascript已经存在的页面。
有不清楚的地方请问。我已经尝试了一段时间,所以我可能错过了一些
因为你的data-qtip="Window-Id: DocAce"
元素永远不会改变,所以你从这个节点开始:
var jEle = document.querySelectorAll('span[data-qtip="Window-Id: DocAce"]')[0]
.parentNode.parentNode.nextSibling.nextSibling;
console.log(jEle.outerHTML);
jEle.click()
<a id="tab-1275"
class="x-tab x-unselectable x-tab-after-title x-box-item x-tab-default x-noicon x-tab-noicon x-tab-default-noicon x-top x-tab-top x-tab-default-top x-closable x-tab-closable x-tab-default-closable x-closable-top x-tab-closable-top x-tab-default-closable-top x-active x-tab-active x-tab-default-active x-top-active x-tab-top-active x-tab-default-top-active selected"
tabindex="0" unselectable="off" hidefocus="on" role="button" aria-label="Documents"
style="right: auto; left: 1px; top: 0px; margin: 0px;" draggable="true" href="javascript:void(0)">
<span id="tab-1275-btnWrap" class="x-tab-wrap" unselectable="on">
<span id="tab-1275-btnEl" class="x-tab-button">
<span id="tab-1275-btnInnerEl" class="x-tab-inner x-tab-inner-center" unselectable="on"
style="line-height: normal; padding-top: 2px;" data-qtip="Window-Id: DocAce">
Documents
</span>
<span id="tab-1275-btnIconEl" class="x-tab-icon-el " style="" unselectable="on" role="img"></span>
</span>
</span>
<span id="tab-1275-closeEl" class="x-tab-close-btn" tabindex="0" title="Close Activity" role="button"
aria-label="Close Activity"></span>
</a>