Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ERB视图上下文中使用Jquery将文本输出到最近的元素中_Jquery_Ruby On Rails - Fatal编程技术网

在ERB视图上下文中使用Jquery将文本输出到最近的元素中

在ERB视图上下文中使用Jquery将文本输出到最近的元素中,jquery,ruby-on-rails,Jquery,Ruby On Rails,这就是我需要的: <dd class="data-list__value"> 5 </dd> 我做错了什么 解决方案: <dd class="data-list__value"> <script> if ($('#verified').prop('checked') == true) { $(this).closest('dd').html('5'); } else { "5"; }

这就是我需要的:

<dd class="data-list__value">
  5
</dd>
我做错了什么

解决方案:

  <dd class="data-list__value">
    <script>
    if ($('#verified').prop('checked') == true) {
      $(this).closest('dd').html('5');
    } else {
      "5";
    }
    </script>
  </dd>
    <% @styles.each do |style| %>
      <dd class="data-list__value" id="scores_<%= style.id %>">
        <script>
        if ($('#verified').prop('checked') == true) {
          $('#scores_<%= style.id %>').append('<%= style.reviews.count %>');
        } else {
          $('#scores_<%= style.id %>').append('<%= style.verified_review_count %>');
        }
        </script>
      </dd>
     <% end %>

if($('#verified').prop('checked')==true){
$(“#分数”)。附加(“”);
}否则{
$(“#分数”)。附加(“”);
}

我建议将js移到一个外部文件中,或者至少移到页面底部,然后做类似的事情

if ($('#verified').prop('checked') == true) {
  $('.data-list__value').html('5');
}else{
  $('.data-list__value').html('some other value');
}
如果此类中有多个标记,则可以使用.first()或last(),或者通过数组的索引使用

你能在这上面使用身份证吗

$('#checkedValue').html('5');

希望这能有所帮助。

如果我明白你的意思,我想就是这样:

<script>
    $('#verified').on('change',function(){
        if($(this).is(':checked')){
            $('.data-list__value').text('4');
        } else {
            $('.data-list__value').text('5');
        }
    });
</script>

$(“#已验证”)。在('change',function()上{
如果($(this).is(':checked')){
$('.data-list__值').text('4');
}否则{
$('.data-list__值').text('5');
}
});
演示:


如果将脚本标记放在标记中,它将永远不会将标记标识为“this”。那么有没有办法只将文本输出到视图中呢。。不必将其分配给标记是的,这很有帮助,只是比我真正想做的更多。。啊。我希望他们能让事情变得容易些。。我想它不是那样工作的。做得好,基本上这对一个人来说是有效的,但是我有一大堆dds要填充。。请看上面我的答案,谢谢你的帮助!如果您有多个ID,则不能对每个ID使用相同的ID。。您不能在代码中重复ID。如果您需要将其用于多个dd,您应该更正您的问题和代码。我们开始吧。都修好了