javascript - 如何检查页面中的某个位置?

标签 javascript html greasemonkey userscripts

我使用类似的方法按条件单击页面上的元素:

var findElem = function(elems, text) {
    for (var i = 0; i < elems.length; i++) {
        if (elems[i].textContent == text) {
            return elems[i];
        } else {
            var result = findElem(elems[i].children, text);
            if (result != undefined) {
                return result;
            }
        }
    }
    return;
}

switch (document.getElementById('my_id').value) {
    case "1":
        findElem(document.documentElement.children, "blabla1").click();
        break;
    case "2":
        findElem(document.documentElement.children, "blabla2").click();
        break;
    default:
        break;
}

我想在此代码中再添加一个条件。

我正在工作的页面是这样的:

<body id="something">

<div id="something2" class="container">
    <div id="header">
        <a class="hmm" href="somelink"></a>
        <a class="aname" target="_blank" href="anotherlink"></a>
    </div>

    <div id="anotherthing" class="anotherthing2">

<div class="differentthing " style="left: 2px; ">
    <div class="asdafad"></div>
</div>

我必须看看是否 differentthing没有style

简而言之,我想做这样的事情:

switch (document.getElementById('my_id').value) {
    case "1":
        ---if differentthing has no style attrib then---
        findElem(document.documentElement.children, "blabla1").click();
        break;

所以如果 differentthing页面部分是这样的

<div class="differentthing ">

然后做findElem.click东西。

如果是<div class="differentthing " style="left: 2px; ">然后什么也不做。

我希望我能描述一下。我怎样才能做到这一点?抱歉我的英语不好。

最佳答案

switch (document.getElementById('my_id').value) {
    case "1":
        // getting an array of elements with "differentthing" class
        var elements = document.getElementsByClassName("differentthing");

        // if there is just one and it does not have "style" attribute
        if (elements.length == 1 && !elements[0].getAttribute("style")){
            // perform some action
            findElem(document.documentElement.children, "blabla1").click();
        }        
        break;

关于javascript - 如何检查页面中的某个位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11038262/

相关文章:

javascript - 如何在 JavaScript 中制作密码编码器?

javascript - 如何用 javaScript 输出我的输入和答案

Javascript拖动对象

html - Bootstrap 按钮在媒体设备中不起作用?

javascript - 是否可以看到(其他)已安装用户脚本的@namespace header 值?

javascript - Jit Tree JS 和 Assets 预编译错误

android - 在 WebView 中启用 HTML5

html - 如何在两列布局中使右侧边栏静态

javascript - 无法通过 Firefox 中的键获取存储的对象值

java - 从java程序向greasemonkey应用程序发送数据?