Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅当站点没有按钮B时,查询选择器选择按钮A_Javascript_Html_Jquery Selectors - Fatal编程技术网

Javascript 仅当站点没有按钮B时,查询选择器选择按钮A

Javascript 仅当站点没有按钮B时,查询选择器选择按钮A,javascript,html,jquery-selectors,Javascript,Html,Jquery Selectors,我正在创建一个Chrome浏览器扩展,每当一些按钮出现时,它会自动单击这些按钮。我使用for the watching,它使用一个查询选择器来监视要单击的html元素 var buttonA = 'a[data-test="begin-session-button"]' var buttonB = 'a[data-test="skill-header-practice-button"]' document.arrive(buttonA, function () { document.que

我正在创建一个Chrome浏览器扩展,每当一些按钮出现时,它会自动单击这些按钮。我使用for the watching,它使用一个查询选择器来监视要单击的html元素

var buttonA = 'a[data-test="begin-session-button"]'
var buttonB = 'a[data-test="skill-header-practice-button"]'

document.arrive(buttonA, function () {
  document.querySelector(buttonA).click();
});

document.arrive(buttonB, function () {
  document.querySelector(buttonB).click();
});
我遇到的问题是,一些网站同时具有按钮
buttonA
buttonB
。到目前为止,两个按钮都会被点击,最后一个被点击是运气的问题

只要有一个站点有
buttonA
buttonB
,只需单击
buttonA
。因此,我希望对
buttonB
的查询进行如下更改:

document.arrive(buttonB + ' :not:' + buttonA, function () {
  document.querySelector(buttonB).click();
});
作为Chrome浏览器控制台中的一个查询,如下所示:

document.querySelector(
   'a[data-test="skill-header-practice-button] ' + 
   ':not:a[data-test="begin-session-button"]'
)

这是错误的语法,在chrome brower控制台中不起作用。正确的语法是什么样子的?

您不能这样做吗

document.arrive(buttonA, function () {
  document.querySelector(buttonA).click();
});

document.arrive(buttonB, function () {
  if(document.querySelector(buttonA) == null){
    document.querySelector(buttonB).click();
  }
});

我不能说我以前用过Arrim图书馆,所以我可能完全错了

你能不能这样做

document.arrive(buttonA, function () {
  document.querySelector(buttonA).click();
});

document.arrive(buttonB, function () {
  if(document.querySelector(buttonA) == null){
    document.querySelector(buttonB).click();
  }
});

我不能说我以前使用过Arrim库,所以我可能完全错了

我想这比使用复杂选择器更简单,比如(与您的代码一起工作,因为
按钮a
是全局的,请注意此变量必须可供函数访问):


我想这比使用复杂选择器更简单,比如(与您的代码一起工作,因为
buttonA
是全局的,请注意此变量必须可供函数访问):