jQuery-通过“ for”属性查找“ label”元素并将“ for”属性重置为新值

0 javascript jquery

我已经搜索并找到以下内容来获取标签。

var label = $("label").attr("for", id);
Run Code Online (Sandbox Code Playgroud)

我最初的尝试是尝试一个变体:

$('label[for|="'+oldId+'"]').attr('for',newId);
Run Code Online (Sandbox Code Playgroud)

其中oldId是当前值,newId是新值。我没有收到错误,但是什么都没有改变。

我还尝试仅获取标签的ID,以便可以通过ID查找元素并更改属性值,但是在尝试时:

var label = $("label").attr("for", oldId);
var id = label.id;
Run Code Online (Sandbox Code Playgroud)

我得到未定义的ID。

因此,基本上我想:-通过它的属性来查找标签元素。-将for属性重置为新值。

T.J*_*der 6

该要求似乎有些奇怪,但是:

所以,基本上我想:

  • 通过属性找到标签元素
var theLabel = $('label[for="' + theValueYouWantToFind + '"]');
Run Code Online (Sandbox Code Playgroud)
  • 将for属性重置为新值
theLabel.attr("for", theNewValueYouWantItToHave);
Run Code Online (Sandbox Code Playgroud)

这会将标签与最初与之关联的元素(具有id匹配的元素)相关联theNewValueYouWantItToHave。

实时示例首先,将“单击我”连接到其左侧的复选框。如果单击“开关”,它将连接到右侧的复选框:

var theLabel = $('label[for="' + theValueYouWantToFind + '"]');
Run Code Online (Sandbox Code Playgroud)
theLabel.attr("for", theNewValueYouWantItToHave);
Run Code Online (Sandbox Code Playgroud)