链接jQuery中的两个元素

Linking two elements in jQuery

本文关键字:两个 元素 jQuery 链接      更新时间:2023-09-26

是否有可能在jQuery中"链接"两个CSS元素?

我的项目中的一个例子:
当某些事情发生时,我想将一个.focused类同时附加到多个元素。它们的ID中都有相同的前缀,但其中有>1个前缀(如#first-header-#first-button#second-header-#second-button等等)。它可能会使用一些正则表达式,但我似乎无法理解这些东西。

一个更准确的例子,因为我不善于解释:
#first-header.focused时,也将相同的.focused类附加到#first-button。这将需要适用于任何一对-标题-按钮

我希望我解释得足够好,并感谢任何形式的帮助。

您可以像这个一样轻松地选择id以first-开头的所有项目

$('[id^="first-"]').addClass('whatever');

听起来应该使用类,而不是在HTML元素的ID中使用模式。

示例HTML:

<div id="first-button" class="button">...</div>
<div id="second-button" class="button">///</div>

Javascript:

$(".button").click(function(){ /*do stuff*/});

该Javascript将为button类的所有div元素附加一个点击处理程序。

$('[id$="header"]').on('focus blur', function(e) {
    $('#' + this.id.split('-').shift() + '-button').toggleClass('focused', e.type=='focus');
});

FIDDLE

一个元素不能有多个id。做你正在做的事情的正确方法是给出你想要改变的一切,比如"toFocus"

试试这个:

$("[name$='header']").focus(function(){
    var t = $(this).attr("id").split("-")[0];
    $("#"+t+"-button").addClass("focus");
});