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,没问题,如果答案对你有帮助,你可以接受。