我喜欢这样:
<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)
任何人都可以帮助我并告诉我错误是什么? 提前谢谢你。
答案 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);
});