0

我对一些基本的 jQuery 有一个小/(奇怪的?)问题。在 HTML 表单中,我有两个元素:

<label for="service-webdesign">
     <input type="checkbox" name="service-web" id="service-webdesign" value="Webdesign" />
     <span id="service-webdesign-span">Webdesign</span>
</label>
<label for="service-SEO" title="Search Engine Optimization">
     <input type="checkbox" name="service-web" id="service-SEO" value="SEO" />
     <span class="service-SEO-span">SEO</span>
</label>

现在,我想做的是添加/删除一个名为“active”的类,以便在这些元素被击中时设置不同的样式。这是实现这一点的jQuery:

$('#service-webdesign').click(function(){
    if($('#service-webdesign-span').hasClass('active')){
        $('#service-webdesign-span').removeClass('active')
        } else ($('#service-webdesign-span').addClass('active'))
    });

$('#service-SEO').click(function(){
    if($('#service-SEO-span').hasClass('active')){
        $('#service-SEO-span').removeClass('active')
        } else ($('#service-SEO-span').addClass('active'))
    });

尽管它们都是相同的(功能明智),但只有第一个按预期工作。我确信这与他们的订单无关,因为交换 jQuery 并没有任何区别。我昨天才开始使用 jQuery,所以我可能缺乏看穿这种行为的能力。

任何帮助将非常感激!

4

2 回答 2

1

service-SEO-span 是一个类,但 service-webdesign-span 是一个 id,您将它们都作为 id 来定位。

于 2013-03-07T08:43:05.103 回答
1

你应该使用toggleClass

你应该使用评论中已经提到的 Juhana 的正确选择器!

$('#service-webdesign-span').toggleClass('active');
于 2013-03-07T08:43:25.837 回答