jquery .attr("value") 方法取到的值不对的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery .attr("value") 方法取到的值不对的问题相关的知识,希望对你有一定的参考价值。
<li value="0105" class="checked"></li>
然后我用$(this).attr("value"),但是取到的是"105"而不是"0105",貌似是自动转化过了,怎么才能取到"0105"
为了不防止自动转换,建议在vlaue属性值前边加入特殊字符,例如:“#10105”这样在读取的时候就不会自动转换了。
但是,用到这个值的时候需要将“#”截取掉。例如:
document..write($("li").attr("value").split("#")[1]); // 这样取出来的值就是“0105”了。
希望能帮到你,^_^ 参考技术A 楼主你的jq是哪一个版本的?我1.9的取值正常
<ul>
<li value="0123">123</li>
<li value="022">22</li>
<li value="123">123</li></ul>
<script src="Scripts/jquery/jquery-1.9.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$('li').click(function ()
alert($(this).attr("value"));
);
</script> 参考技术B 自定义属性尽量以data-开头,这样写就不会出现问题了
value-> data-value本回答被提问者采纳
jQuery:value.attr 不是函数
【中文标题】jQuery:value.attr 不是函数【英文标题】:jQuery: value.attr is not a function 【发布时间】:2011-05-06 02:50:45 【问题描述】:我在我的页面中剪掉了这个:
$('#category_sorting_form_save').click(function()
var elements = $("#category_sorting_elements > div");
$.each(elements, function(key, value)
console.info(key," : ",value);
console.info("cat_id: ",value.attr('cat_id'));
);
);
当它被执行时,我得到:
0 : <div class="dragable" cat_id="6" value="" style="opacity: 1;">
value.attr is not a function
console.info("cat_id: ",value.attr('cat_id'));
我在这里做错了什么?我正在尝试获取 div.cat_id 元素的值。
【问题讨论】:
【参考方案1】:该 jQuery 对象的内容是纯 DOM 元素,它不响应 jQuery 方法(例如 .attr
)。您需要将值通过$()
包装成一个jQuery 对象来使用它。
console.info("cat_id: ", $(value).attr('cat_id'));
或者直接使用DOM方法
console.info("cat_id: ", value.getAttribute('cat_id'));
【讨论】:
【参考方案2】:您正在处理原始 DOM 元素 .. 需要将其包装在 jquery 对象中
console.info("cat_id: ",$(value).attr('cat_id'));
【讨论】:
【参考方案3】:传递给each() 的回调函数的第二个参数将包含实际的DOM 元素,而不是jQuery 包装对象。可以调用元素的getAttribute()方法:
$('#category_sorting_form_save').click(function()
var elements = $("#category_sorting_elements > div");
$.each(elements, function(key, value)
console.info(key, ": ", value);
console.info("cat_id: ", value.getAttribute('cat_id'));
);
);
或者自己将元素包装在一个 jQuery 对象中:
$('#category_sorting_form_save').click(function()
var elements = $("#category_sorting_elements > div");
$.each(elements, function(key, value)
console.info(key, ": ", value);
console.info("cat_id: ", $(value).attr('cat_id'));
);
);
或者干脆使用$(this)
:
$('#category_sorting_form_save').click(function()
var elements = $("#category_sorting_elements > div");
$.each(elements, function()
console.info("cat_id: ", $(this).attr('cat_id'));
);
);
【讨论】:
【参考方案4】:您也可以使用jQuery('.class-name').attr("href")
,在我的情况下效果更好。
这里有更多信息:"jQuery(...)" instead of "$(...)"
【讨论】:
以上是关于jquery .attr("value") 方法取到的值不对的问题的主要内容,如果未能解决你的问题,请参考以下文章
jquery版本号升级不兼容的问题:$("input").attr("value")功能发生改变