jQuery无法从li(list)元素获取完整值属性

时间:2013-06-13 10:06:37

标签: javascript jquery html

HTML源代码,我希望从中获取“完整”值:

<li title="child-.11 02 C" class="dragable second" value="160|.11 02 C" style="">.11 02 C Dach Rohrgerüst 0,7m</li>

这个js代码不是我在列表元素上所期望的,而是在selectbox选项上运行:

$(document).on('click','select#ArtikelNr, ul#dragableElements li.selected',function() {
    $('.product-txt').remove('');
    // Get ID Example [FIRST IDENTIFIER]|[[FIRST IDENTIFIER]
    var prodNr = $(this).val();
    console.log(prodNr)

它只给了我“160”。

即使我将分隔符更改为[/]或[ - ]或[],问题仍然相同。我的第一个想法是修剪空白和其他非alphnum字符,但我也没有运气。

使用: jQuery的1.8.3.min.js 的jquery-UI-1.9.2.custom.min.js

有什么想法吗?

最善良 ELEX

2 个答案:

答案 0 :(得分:6)

您无法使用value li元素来包含除数字以外的任何内容。

引自moz-docs:

  

此属性唯一允许的值是一个数字,即使列表显示为罗马数字或字母。

     

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li

因此,您不应使用此属性来存储数据。


如果您愿意,可以改为使用data-attribute

<li title="child-.11 02 C" class="dragable second" data-value="160|.11 02 C">.11 02 C Dach Rohrgerüst 0,7m</li>

要获取该值,请使用:

$(this).data('value');

演示:http://jsfiddle.net/samliew/ZgMze/

答案 1 :(得分:1)

val不适用于li

使用

var prodNr = $(this).attr('value');

阅读http://api.jquery.com/val

<强>替代

您可以使用data之类的,

<li title="child-.11 02 C" data-value="160|.11 02 C" style="">.11 02 C Dach Rohrgerüst 0,7m</li>

<强> JS

var prodNr = $(this).data('value');

文档http://api.jquery.com/data