标签的jQuery set属性

是否可以使用jQuery设置“ for”(AssociatedControlID)属性?我正在尝试像这样将其设置为出现在label之后的下一个控件:

$('label.asssociateClass').each(function()
{

      var toAssociate = $(this).next(':input');

      $(this).attr("for",toAssociate.attr("id"));

});

问题是,如果我不通过AssociatedControlID在服务器上设置它,它将永远不会到达这里,因为在这种情况下,它是作为跨度而不是标签呈现的.有没有办法克服这个问题,或者我必须在服务器上做到这一点?

最佳答案
您可以使用.replaceWith()使用标签替换范围,如下所示:

$('span.asssociateClass').each(function() {
  var l = $("<label class='associateClass' />")
           .html($(this).html())
           .attr('for',$(this).next(":input").attr("id"));
  $(this).replaceWith(l);
});​

这是它工作的一个简单示例:http://jsfiddle.net/V73WL/

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...