按ID选择元素内部的标签并检查它的类 - 原型

时间:2014-11-01 04:43:45

标签: prototypejs

我正在尝试检查标记a是否具有标识selected。 我有html:

    <div id="30-super-attribute-138" class="colorswatch-lines">
        <a class="lnk-colorswatch selected" id="30-lnk-colorswatch-138-34" href="javascript:selectColorSwatch(138, 34, 30, true)"></a>
    </div>

和我的原型脚本:

    if ($('30-super-attribute-138 a').hasClassName('selected')) {
        var myStyle = '#333';
        $('main-picture').setStyle ({
          backgroundColor: myStyle 
        });
    }

setStyle正如预期的那样工作,但是如果标签a选择了类,我有麻烦要检查 - 选择颜色后它就发生了。 在控制台中,我看到错误:Uncaught TypeError: Cannot read property 'hasClassName' of null

请如何正确选择ID为30-super-attribute-138

的div中的标记a

谢谢Peter

2 个答案:

答案 0 :(得分:1)

......嗯这很容易,用原型得到第一个子元素:

if ($('30-super-attribute-138').down('a').hasClassName('selected')) {
    var myStyle = '#333';
    $('main-picture').setStyle ({
      backgroundColor: myStyle 
    });
}

好的,对于这类问题,现在看起来非常简单。

答案 1 :(得分:0)

为了在PrototypeJS中执行它的替代方法,您可能会发现它有用/有趣,这可以在单个DOM调用中起作用:

if($$('#30-super-attribute-138 a.selected')[0]) {
    var myStyle = '#333';
    $('main-picture').setStyle ({
        backgroundColor: myStyle 
    });
}

快乐的编码!