使用jQuery的attr()方法获取属性值返回undefined问题求助
问题解决:jQuery attr() 返回 undefined 的原因及修复方案
嘿,我一眼就瞅出问题所在啦!你的代码里有个很容易忽略的小错误:
核心问题:选择器找不到目标元素
你在jQuery代码里用了$("#search_field")来定位input元素,但看你的HTML代码,那个input标签根本没设置id="search_field",只有class="address_field"。这就导致jQuery找不到你要操作的元素,自然设置和获取自定义属性都会返回undefined咯。
两种修复方案
你可以任选一种来解决:
方案1:给input添加id属性
修改你的HTML代码,给input加上对应的id:
<label for="search_field">Address</label> <input type='text' class='address_field' id='search_field' />
这样原有的jQuery代码就能正常工作了。
方案2:修改jQuery选择器为class选择器
如果你不想加id,直接用class来选中元素也行:
$(document).ready(function() { $(".address_field").attr("selectedvale", 'dsds') var aaa = $(".address_field").attr("selectedvale"); alert(aaa) });
额外小建议:规范使用自定义属性
按照HTML5的标准,自定义属性建议加上data-前缀,比如data-selectedvale,这样不仅符合规范,用jQuery的data()方法操作也更方便:
$(document).ready(function() { $(".address_field").data("selectedvale", 'dsds') var aaa = $(".address_field").data("selectedvale"); alert(aaa) });
内容的提问来源于stack exchange,提问作者user974802
相关产品推荐
相关产品推荐

