网页的行为不像在控制台中操作后选中复选框一样



对不起,我的能力有限,无法提出这个问题。我需要勾选100个框才能将会计规则应用于100个银行分录(在FreeAgent中(。在谷歌Chrome的控制台中,我键入了以下内容,成功地选中了列表中的第一个框。(一旦它工作起来,我会把它放在一个循环中,这样它就会检查所有的内容,但我还没有到那个地步。(

var x = document.getElementsByClassName('FormElement-checkbox');
x[1].firstElementChild.checked = true;

当我试图继续这个程序时,网页并没有"意识到"这些框已经被选中。只有当我在页面上单独点击复选框时,我才能让它发挥作用——它们看起来是选中的,这对页面来说似乎无关紧要。所以很明显我缺少了一些东西。

我可以成功地在框中输入文本并在下拉列表中选择项目。我已经尝试过检查checkbox元素,并通过单击它来查看当它被选中时会发生什么,但我看不到HTML中有任何区别。在键入时,我已经研究了该对象的javascript中的许多属性

x;

这就是我最初发现.firstElementChild.checked=true的原因。

我不知道这是页面本身特有的东西,还是总的来说,我还没有足够的经验来处理所有的数据输入情况。我试着在这个论坛和其他地方寻找答案。

你试过这样的东西吗:

var x = document.getElementsByClassName('FormElement-checkbox')
x[0].checked = true;

或者对checkbox元素使用CCD_ 1方法。

HTML文档的一部分可能会有所帮助。

发生这种情况很可能是因为一些JS/CSS技巧——元素正在侦听click事件,而不是HTML属性的更改。尝试引发点击事件

var cbs = document.getElementsByClassName("FormElement-checkbox")
for (var i = 0; i < cbs.length; i++){
cbs[i].click()
}

试试这个:

var x = document.getElementsByClassName('FormElement-checkbox');
var result = "document.getElementsByClassName('FormElement-checkbox')";
for (var i=0, len=x.length|0; i<len; i=i+1|0) {
result += "n  " + x[i].textContent;
}

您也可以尝试使用:

document.querySelector(".FormElement-checkbox") 

获取具有class_name(或(的第一个元素

document.querySelectorAll(".FormElement-checkbox") 

使用class_name 获取元素列表

你可以在这个链接上找到关于Document.getElementsByClassName((的一切

最新更新