Javascript 尝试获取href的属性时获取#[object object]

Javascript 尝试获取href的属性时获取#[object object],javascript,jquery,list,Javascript,Jquery,List,我有一个动态生成的ol li列表,每个li都有一个标签,带有for属性 像这样: <ol id="altErrorCont" class="error-container"> <li> <label class="error" for="dobMonth">Enter the month you were born</label> </li> <li> <labe

我有一个动态生成的
ol li
列表,每个
li
都有一个
标签
,带有
for
属性

像这样:

<ol id="altErrorCont" class="error-container">
    <li>
        <label class="error" for="dobMonth">Enter the month you were born</label>
    </li>
    <li>
        <label class="error" for="dobDay">Enter the day you were born</label>
我写了这封信,但它不起作用:

var labelFor = $("ol#altErrorCont li label").each(function(){
    $(this).attr("for");
});

$('ol#altErrorCont li > label').wrap('<a href="#'+ labelFor +'">');
var labelFor=$(“ol#altErrorCont li label”)。每个(函数(){
$(本).attr(“for”);
});
$('ol#altErrorCont li>label')。包装(“”);
它返回每个包装标签的
。有人能给我指出正确的方向或解释为什么会发生这种情况吗

提前感谢。

jQuery的
。each()
方法返回对象。当您在字符串连接中使用它时,JavaScript会对其调用
toString()
方法。由于jQuery没有定义自己的
toString
方法,因此它调用在
对象上定义的方法。prototype
返回
[Object Object]

以下是我将如何着手的:

var labelFor = $("ol#altErrorCont li label").each(function(){
    $(this).wrap('<a href="#'+ $(this).attr("for") +'">');
});
var labelFor=$(“ol#altErrorCont li label”)。每个(函数(){
$(此).wrap(“”);
});
jQuery的
。each()
方法返回对象。当您在字符串连接中使用它时,JavaScript会对其调用
toString()
方法。由于jQuery没有定义自己的
toString
方法,因此它调用在
对象上定义的方法。prototype
返回
[Object Object]

以下是我将如何着手的:

var labelFor = $("ol#altErrorCont li label").each(function(){
    $(this).wrap('<a href="#'+ $(this).attr("for") +'">');
});
var labelFor=$(“ol#altErrorCont li label”)。每个(函数(){
$(此).wrap(“”);
});
只是提供了一种跨一组项目进行迭代的方法。
labelFor
得到的值将与您得到的值相同

var labelFor = $("ol#altErrorCont li label");
如果要将每个
标签
包装在链接中,可以在
每个
循环中执行一些操作

$("ol#altErrorCont li label").each(function() {
  var $this = $(this); // Faster than always doing $(this)
  var label = $this.attr('for');
  $this.wrap('<a href="' + label + '">');
});
$(“ol#altErrorCont li标签”)。每个(函数(){
var$this=$(this);//比总是执行$(this)更快
var label=$this.attr('for');
$this.wrap(“”);
});
只是提供了一种跨一组项目进行迭代的方法。
labelFor
得到的值将与您得到的值相同

var labelFor = $("ol#altErrorCont li label");
如果要将每个
标签
包装在链接中,可以在
每个
循环中执行一些操作

$("ol#altErrorCont li label").each(function() {
  var $this = $(this); // Faster than always doing $(this)
  var label = $this.attr('for');
  $this.wrap('<a href="' + label + '">');
});
$(“ol#altErrorCont li标签”)。每个(函数(){
var$this=$(this);//比总是执行$(this)更快
var label=$this.attr('for');
$this.wrap(“”);
});
这是因为“each”方法返回一个jQuery对象,您可以移动它:
$('ol#altErrorCont li>标签')。包装(“”)
“每个”方法的内部如下所示:

$(this).wrap('<a href="#'+ $(this).attr("for") +'">');
$(this.wrap(“”);
这是因为“each”方法返回一个jQuery对象,您可以移动它:
$('ol#altErrorCont li>标签')。包装(“”)
“每个”方法的内部如下所示:

$(this).wrap('<a href="#'+ $(this).attr("for") +'">');
$(this.wrap(“”);

工作正常。谢谢。@bunnycode,没问题,如果答案对你有帮助,你可以接受。效果很好。谢谢。@bunnycode,没问题,如果答案对你有帮助,你可以接受。