在<ul> <li> </li> </ul>中获取值时出错

时间:2011-12-19 07:09:52

标签: jquery

<div class="heading">
<ul>
<li id="one">One</li>
<li id="two">Two</li>
</ul>
</div>

我使用这个jquery

<script>
$(document).ready(function(){
    $('.heading ul li').click(function(){
        var type1 = $('#one').val();
        var type2 = $('#two').val();
        if(type1) {
            alert("1");
        } else {
            alert("2");
        }
    });    
});
</script>

=&GT;单击一个或两个时出错,结果是2,如何解决?

3 个答案:

答案 0 :(得分:2)

if(type1)是什么意思?我想你想检查li的值是否为1然后输入if语句?然后你应该:

  $('.heading ul li').click(function(){
    var type1 = $('#one').html();
    var type2 = $('#two').html();
    if($(this).val() == type1) {
        alert("1");
    } else {
        alert("2");
    }
});   

希望这有帮助:)

(从val编辑为html)

答案 1 :(得分:0)

当你致电.val()时,它会返回一个字符串。除0以外的任何字符串都将在if语句中返回true。但是你有更多的问题。 val为您提供输入值。列表项没有值属性,因此不起作用。你可能想要检索html。

$('li').click( function() {
  var type1 = $('#one').html();
  var type2 = $('#two').html();

  if (type1 == 'One') { ... }
  else { ... }
});

答案 2 :(得分:0)

从jQuery 1.4开始,.text()方法返回text和CDATA节点以及元素节点的值。

这里是jquery text()的链接 http://api.jquery.com/text/

尝试

<script> $(document).ready(function(){     
    $('.heading ul li').click(function(){         
    var type1 = $('#one').text();         
    var type2 = $('#two').text();         
    if(type1 =="One") {             
       alert("1");         
    } else {
       alert("2");        
    }     
    });     
    }); 
</script>