this.value只返回前两个字符

时间:2012-10-01 16:24:10

标签: javascript jquery

我正在尝试使用类bm-user-label查找所有元素的值,并将其放入javascript数组中。但是,当我这样做时,我只获得值字段的前两个字符。例如:

value="30bb3825e8f631cc6075c0f87bb4978c"

我被退回

30

DOM看起来像

<li value="30bb3825e8f631cc6075c0f87bb4978c" class="cboxElement bm-user-label">first</li>

我的javascript是:

var com_labels = $('.bm-user-label').map(function() {
     return(this.value);
}).get();

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

<li>元素未定义为具有值。您应该使用this.getAttribute("value")来获取此属性。

答案 1 :(得分:4)

为了遵循doctype标准,您应该将数据属性用于非本机属性:

<li data-value="30bb3825e8f631cc6075c0f87bb4978c" class="cboxElement bm-user-label">first</li>

然后查询:

var com_labels = $('.bm-user-label').map(function() {
     return($(this).data('value'));
}).get();

http://jsfiddle.net/sTdWY/