Jquery 从标签中提取输入的id
htmlJquery 从标签中提取输入的id,jquery,Jquery,html 我认为这不是正确的方法。怎么做?在接收器功能中形成动态选择器的方式完全错误 试试看 或者,如果原始HTML结构与给定的结构相同,则可以使用.next() 应该是: $('label').text(function(){ return $(this).next('input').val(); }); 您只需使用标签的htmlFor属性来引用文本框: $('label').text(function(){ return $('#' + $(this).prop('for'))
我认为这不是正确的方法。怎么做?在接收器功能中形成动态选择器的方式完全错误 试试看 或者,如果原始HTML结构与给定的结构相同,则可以使用
.next()
应该是:
$('label').text(function(){
return $(this).next('input').val();
});
您只需使用标签的
htmlFor
属性来引用文本框:
$('label').text(function(){
return $('#' + $(this).prop('for')).val();
});
再次阅读问题后,您可能正在寻找以下内容:
$('label').text(function() {
// find tag by id and return its value
return $('#' + this.htmlFor).val();
});
另请参见:ID属性在每页上都是唯一的,因此实际上,不需要说明它是关于
输入的35;
不确定OP为什么需要输入#my_ID for.@RokoC.Buljan可读性,如果他们正在进行组合开发,示例:将来,如果一个新开发人员进来,他/她必须检查HTML文件以检查该元素的性质,无论是div/span/input还是其他内容。@RajaprabhuAravindasamy我理解,但发挥神奇作用的是标签
。因此,对于未来的发展,这是利益的因素。然后,你可能会在代码中查看label
发生了什么,并看到$('label').text(function(){
,它甚至不需要input
在里面。如果你使用.next()
,只要你想稍微修改HTML@RokoC.Buljan当然可以:)这就是为什么我刚才给出了一个旁注,如果您的原始HTML结构与给定的结构相同,那么输入的id
就是属性的值。+1这就是我试图回答的,只是忘记了htmlFor
@SalmanA您的电脑似乎坏了;)下面是上面确切代码的演示:哪个是如何使用.prop()
methodDrat,没有注意到你用prop替换了attr。@SalmanA实际上我在想为什么我不能使用它(我知道这很有趣)vanilla的this.for
,似乎逻辑原因for
是一个保留字,因此尝试attrFor
失败的杰克记得正确的方法:htmlFor
:D:D我想知道是谁发明了与“属性”相关的“html”前缀……在这种情况下,正确的解决方法是使用attr('for'))
或.prop('htmlFor')
.jQuery将prop('for')
映射到prop('htmlFor')
和prop('class')
映射到prop('className')
幕后。@SalmanA这不太正确,您可能不知道jQueryprop()
方法的范围比.attr()更广
获取浏览器分配的(属性和)属性时,.attr()
可能会失败,但在任何情况下,for
和htmlFor
都是可通过.prop()
获取的完全有效(attr)属性。
$('label').text(function(){
return $(this).next('input').val();
});
$('label').text(function () {
return $('input#' + $(this).attr('for')).val(); // like input#my_id
//or
return $('#' + $(this).attr('for')).val(); // like #my_id
});
$('label').text(function(){
return $('#' + $(this).prop('for')).val();
});
$('label').text(function() {
// find tag by id and return its value
return $('#' + this.htmlFor).val();
});
$('label').text(function() {
return 'input#' + this.htmlFor;
});