【问题标题】:My Jquery isn't "throwing" anything我的 Jquery 没有“扔”任何东西
【发布时间】:2011-10-21 08:40:43
【问题描述】:

我这里有一个代码:

<script type="text/javascript" src="<?=base_url()?>lib/jquery-1.6.2.min.js"></script>
<script type="text/javascript">
$('.hover-star').click(function (){
    $('.someDiv').text(this.val());
})
</script>



                <input name="neat" type="radio" class="hover-star" value="1" title="Poor"/>
                <input name="neat" type="radio" class="hover-star" value="2" title="Fair"/>
                <input name="neat" type="radio" class="hover-star" value="3" title="Satisfactory"/>
                <input name="neat" type="radio" class="hover-star" value="4" title="Outstanding"/>

                <div id="someDiv">aray</div>  

我的问题是它没有抛出任何东西!我真的在这个角落里。在 jsfiddle.net 中,这是有效的。我想要的是当我的单选按钮被点击时,它会显示它的值或标题。

【问题讨论】:

  • 您的选择器“.somediv”,但在您的 html 代码中有“#someDiv”。它和 ID。
  • 请在您的问题中使用更具描述性的标题

标签: jquery html codeigniter


【解决方案1】:

我在您的代码中看到四件事:

  1. 不要忘记 jquery 点击事件定义末尾的;

  2. 您应该使用 #someDiv 而不是 .someDiv,因为 someDiv 是 Object Id,而不是 Object 类。 Wesley 已经提到了这一点。

  3. 您不能使用this.val(),因为val() 不是本机javascript 函数。您可能想使用 $(this).val() 将 javascript 对象包装到 jQuery 中。

  4. 您需要使用$(function() { /* your code */ });,因为您的 javascript 函数是在创建 HTML 对象之前定义的。这是
    $(document).ready(function () { /* your code */ });

  5. 的快捷方式

应该是:

<script type="text/javascript">
$(function() {
  $('.hover-star').click(function (){
    $('#someDiv').text($(this).val());
  });
});
</script>

【讨论】:

  • 我想你抓住了它:this.val() 是罪魁祸首。不知道为什么 OP 说“这适用于 jsfiddle”有这么多错误。不过,我很确定分号是可选的。
  • 哈哈,你今天的超级英雄 Wesley Murch。让它与您的代码一起使用。我在 jquery 中很菜鸟。我也在使用星级评价 jquery。
  • 也是最后一个问题。有没有办法显示我的收音机输入的标题而不是它的值?或者 If $(this).val() == 1 return "Poor"; elseif $(this).val() == 2 return "Fair";等等。
  • 院长:试试$(this).attr('title');
【解决方案2】:

您需要将您的 jQuery 代码放入“就绪”处理程序中:

$(document).ready(function() {
    // put your jQuery code here.
});

【讨论】:

  • 你的意思是我必须这样写:'code'$(document).ready(function() { $('.hover-star').click(function (){ $ ('.someDiv').text(this.val()); }) });'/code'
  • 是的,这就是我的意思。一般来说,你所有的 jQuery 代码都应该在“就绪”处理程序中——这样你就可以确保所有的东西都被正确加载和初始化了。
  • 好的,在我添加“就绪”处理程序后,我现在可以看到昏暗的灯光,因为我试图发出警报($(this).val());它有效。但是现在如果我添加这个 $('#someDiv').text(this.val());它告诉我一个错误。它说 this.value 不是一个函数。
  • "this" 没有 "val()" 方法 - 您可能正在寻找 $('#someDiv').text($(this).val()); 。然而,这并没有真正的意义——你能描述一下你想要完成的事情吗?
  • 点击
    时,我正在尝试输出收音机的值或标题。例如,如果我单击 radio1,它会显示它的值,即 1 或更好的标题:Poor 等等。
【解决方案3】:

你应该使用$(this),而不是this

here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多