按文本获取按钮元素

时间:2018-06-04 16:13:30

标签: jquery

我正在开发一个生成网页的系统,而我的工作范围有限。我需要从屏幕上删除某些内容或更改其文本。系统是自定义编写的,我无法控制它生成的HTML。请考虑以下事项:

<button class="spx_xfy1528128408146 spx_xfy-01528128408146 spx_xfy_type_11528128408146">Display Zone</button>

该按钮显示在特定页面上。我不能给它一个ID或任何东西。使用JQuery,有没有办法获得这个按钮并更改&#34;显示区域&#34;到&#34;显示区域&#34;?这种情况下的数值1528128408146,每次加载页面时都是随机的,这使得这项工作变得很困难。我可以通过内部文本获取对按钮元素的引用吗?

更新 好的,到目前为止,我有这个来获取引用但由于某种原因它给了我一个错误:$未定义

为什么不呢?我已经包含了对jquery的引用并且没有解决它。

// ==/UserScript==
// ...
// @require     http://code.jquery.com/jquery-latest.js
// ==/UserScript==

$(document).ready(function() {
   setTimeout(function() {
       var $buttons = $("button:contains('Display Zone')");
       $buttons.style.display = "none";}, 8000);});

感谢。

2 个答案:

答案 0 :(得分:3)

看看如何使用“:contains()”

https://api.jquery.com/contains-selector/

var $buttons = $("button:contains('Display Zone')");

修改

关于您编辑的代码,问题在于以下行:

$buttons.style.display = "none";

我将var $按钮命名有两个原因:'$'表示这是一个jQuery对象,“s”表示它是一个集合。

当您使用jQuery选择器时,您将获得与该选择器匹配的所有元素,并且将在所有这些元素上调用任何后续函数(如.hide())。

您的.style.display是将在vanilla javascript中的HTML元素上使用的代码。要访问集合中的第一个html元素,您可以使用.get()

https://api.jquery.com/get/

如果要以jQuery对象的身份访问它,请使用.eq()

https://api.jquery.com/eq/

因此,要将按钮的显示设置为无,您可以使用:

$buttons.get(0).style.display = "none";

或者您可以使用:

$buttons.hide();

这是实现同样事情的jQuery方法。

答案 1 :(得分:0)

最后,我发现通过将这行代码添加到javascript中可以解决错误。

var $ = window.jQuery;