我正在开发一个生成网页的系统,而我的工作范围有限。我需要从屏幕上删除某些内容或更改其文本。系统是自定义编写的,我无法控制它生成的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);});
感谢。
答案 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()
如果要以jQuery对象的身份访问它,请使用.eq()
因此,要将按钮的显示设置为无,您可以使用:
$buttons.get(0).style.display = "none";
或者您可以使用:
$buttons.hide();
这是实现同样事情的jQuery方法。
答案 1 :(得分:0)
最后,我发现通过将这行代码添加到javascript中可以解决错误。
var $ = window.jQuery;