0

私はこのようなものを使用して、条件ごとにページ上の要素をクリックします。

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;
}

このコードにもう1つの条件を追加したいと思います。

私が作業しているページは次のようなものです。

<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; ">何もしません。

説明できるといいのですが。どうやってやるの?そして、私の悪い英語でごめんなさい。

4

3 に答える 3

2
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;
于 2012-06-14T17:33:12.993 に答える
0

要素にスタイルがないかどうかを確認したいですか?

手始めに、jqueryを使用します

var hasStyle = $(".differentthing").attr("style")
if(hasStyle){/*...do your cool stuff...*/}

attrメソッドは、要素の属性を設定または返します。あなたにとって、それはスタイル属性でしょう。

于 2012-06-14T17:31:50.870 に答える
0

この関数を使用して属性(この場合はスタイル)を取得できると思います

http://www.w3schools.com/dom/met_element_getattribute.asp

<!DOCTYPE html>
<html>
   <head>
   </head>
<body>
   <p id="title" style="color:red">algo</p>

</body>
<script type="text/javascript">
  var prueba = document.getElementById('title').getAttribute('style');
  document.write(prueba);
</script>
</html>

別の例:

 switch (document.getElementById('my_id').value) {
   case "1":
    elements = document.getElementsByClassName('differentthing');
    for(x in elements){
       if(!x.getAttribute('style')){
           //dont have style attribute do something 
       }
    }
    findElem(document.documentElement.children, "blabla1").click();
    break;
于 2012-06-14T17:38:13.110 に答える