无法使用我的脚本</h3>读取<h3>类

时间:2012-05-20 19:03:44

标签: javascript html css

我有一个小问题。我似乎无法让脚本识别h3标签。我不能把它保持为h3,我必须为它添加一个类。

标记:

<h3 class="jjheader">
    <?php echo $listitem->title ?>
</h3>

CSS:

#accordion h3.jjheader { 
    padding: 8px 8px 8px 8px; 
    font-weight: bold; 
    font-size: 12px; 
    color: #666666;
    margin-top: 5px; 
    cursor: pointer; 
    border: 1px solid #444444;
    border-radius: 8px;
    background: #151515;
}

如果我没有在h3中添加一个类并在下面的脚本中用.jjheader替换h3,它可以正常工作,但是对于类,它不会。

脚本:

<script type="text/javascript">
     var parentAccordion=new TINY.accordion.slider('parentAccordion'); 
     parentAccordion.init('accordion','.jjheader',0,1,'accordion-selected');
</script>

手风琴基于http://www.scriptiny.com/2009/03/accordion/

的TinyAccordion JavaScript手风琴包

有人可以指出正确的方向吗?

2 个答案:

答案 0 :(得分:3)

该脚本从定义T$$开始,init仅在function T$$(e,p){ if(e[0] == '.') { var matches = p.getElementsByClassName(e.substring(1)); return matches.length == 0 ? null : matches[0]; } else { return p.getElementsByTagName(e); } } 中使用。该函数在容器中按标记名称查找元素。可以很容易地修改它以使用类选择器,例如:

getElementsByClassName

如果传递的搜索字符串的第一个字符是点,则上面的代码使用#,表示css类选择器;否则,它按标签名称返回一个元素,就像在原始源中一样。

您当然可以通过检查前导getElementById并执行function T$$(e,p) { return $(p).find(e); } 来扩展此功能。如果你已经在你的网站上运行jQuery,你可以简化它并利用jQuery的sizzle选择器:

{{1}}

答案 1 :(得分:2)

如果您正在讨论this脚本,则无法在不修改代码的情况下使用您想要的类名。也就是说,它当前的工作方式,“init”函数的第二个参数必须是标签名称。

这段代码并不漂亮但很简单,因此以某种方式增强它以满足您的需求应该不会太难。