将ul的值(STRING)转换为jquery变量

时间:2013-03-18 06:11:41

标签: jquery html-lists

我喜欢这样:

<ul class="options" id="selt_count">
  <li value="1">One</li>
  <li value="2">Two</li>
  <li value="5">Five</li>
  <li value="12">Other</li>
</ul>
<input type="submit" id="send1" value="send">

我使用这个脚本在jquery中以以下格式(1,2,5,12)将li的所有值变为变量:

<script>
    $(document).ready(function(){
        $("#send1").click(function(){
            var values = $('#selt_count li').map(function() {
                return this.value
            });
            values;
            var s = '(' + values.get().join(',') + ')';
            alert (s);
        });
    });
</script>

但如果li的值以字符

给出,则此脚本无效

示例:现在我有一个ul:

<ul class="options" id="selt_count">
    <li value="jonh">One</li>
    <li value="jack">Two</li>
    <li value="black">Five</li>
    <li value="barbosa">Other</li>
</ul>

脚本将显示(0,0,0,0)

任何人都可以帮助我并告诉我错误是什么? 提前谢谢你。

4 个答案:

答案 0 :(得分:1)

而不是获取文本使用.attr()获取值属性。

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

答案 1 :(得分:1)

尝试使用这样的HTML:

<ul class="options" id="selt_count">
    <li data-value="jonh">One</li>
    <li data-value="jack">Two</li>
    <li data-value="black">Five</li>
    <li data-value="barbosa">Other</li>
</ul>

像这样的JavaScript:

<script>
$('#selt_count li').click(function() {
    var index = $(this).index();
    var text = $(this).text();
    var value = $(this).attr('data-value');
    alert('Index is: ' + index + ' , text is ' + text + ' and value is ' + value);
});
</script>

有关此data-*的更多信息:http://html5doctor.com/html5-custom-data-attributes/


基于您的修改的其他脚本...

<script>
    $(document).ready(function(){
        $("#send1").click(function(){
            var values = $('#selt_count li').map(function() {
                return $(this).attr('data-value');
            });
            var s = '(' + values.get().join(',') + ')';
            alert (s);
        });
    });
</script>

答案 2 :(得分:0)

你对.index()的使用是错误的。查看文档:{​​{3}}

答案 3 :(得分:0)

试试this link。这可能会对你有帮助。

用,

$('#selt_count li').click(function() {
    var index = $(this).attr('value');
    var text = $(this).text();
    alert('Index is: ' + index + ' and text is ' + text);
});