Javascript 如何通过html锚定标记传递Js变量

Javascript 如何通过html锚定标记传递Js变量,javascript,html,ajax,laravel-5,anchor,Javascript,Html,Ajax,Laravel 5,Anchor,在这里,我试图像这样将id传递给控制器{{route(“admin.service.edit”,'+val[0]+')} 但是 +Val[0 ] +'/COD>被认为是URL中的一个字符串http://localhost:8000/admin/service/**+val%5B0%5D+**/编辑 但是这个变量在URL中看起来像+val%5B0%5D+,但我需要它的值 这是我的锚标签 <a href="{{ route("admin.service.edit"

在这里,我试图像这样将id传递给控制器
{{route(“admin.service.edit”,'+val[0]+')}

但是 +Val[0 ] +'/COD>被认为是URL<代码>中的一个字符串http://localhost:8000/admin/service/**+val%5B0%5D+**/编辑

但是这个变量在URL中看起来像+val%5B0%5D+,但我需要它的值

这是我的锚标签

<a href="{{ route("admin.service.edit",'+val[0]+')}}"></a>

下面是完整的代码

$.ajax({
       type:'POST',
       url:'/admin/service/show_list',
       data:{ modality_id: m, center_id: h },
       success:function(data) {
           $("#service-table > tbody").empty();
                var trHTML = '';
                $.each( data.service_list1, function( i, val ) {
                    trHTML +='<tbody><tr id="myTableRow" style="text-align:center;"><td>' + val[0] + '</td><td>' + val[1] + '</td><td><a href="{{ route("admin.service.edit",'+val[0]+')}}" class="btn btn-default btn-xs" title="Edit Service"><i class="fa fa-pencil"></i></a></td></tr></tbody>';
                });
                $('#service-table').append(trHTML);
                }
       });
$.ajax({
类型:'POST',
url:“/admin/service/show_list”,
数据:{模态id:m,中心id:h},
成功:功能(数据){
$(“#服务表>tbody”).empty();
var trHTML='';
$.each(data.service_列表1,函数(i,val){
trHTML+=''+val[0]+''+val[1]+'';
});
$(“#服务表”).append(trHTML);
}
});
但是我想在URL中传递该变量的值,那么我如何才能做到呢

提前谢谢你的混音。整个表达式在服务器端计算:

{{ route("admin.service.edit",'+val[0]+')}}
服务器只使用文本字符串值
'+val[0]+'
。服务器上不涉及JavaScript。将结果放入页面后,生成的页面将传递到浏览器。(作为练习,请查看浏览器的“查看源代码”选项,并准确查看JavaScript代码中的内容。)

一种可能的解决方法是,使用占位符值,然后在客户端替换该值,而不是直接将JavaScript值放入服务器端操作。例如,可能是这样的:

{{ route("admin.service.edit","REPLACEME")}}
然后在JavaScript代码中,您将有以下内容:

trHTML +=
  '[removed for brevity]<a href="http://localhost:8000/admin/service/REPLACEME/edit" class="btn btn-default btn-xs" title="Edit Service"><i class="fa fa-pencil"></i></a></td></tr></tbody>';
trHTML+=
“[为简洁起见删除]”;
您可以使用JavaScript将已知占位符替换为预期的客户端值:

trHTML +=
  '[removed for brevity]<a href="http://localhost:8000/admin/service/REPLACEME/edit" class="btn btn-default btn-xs" title="Edit Service"><i class="fa fa-pencil"></i></a></td></tr></tbody>'
  .replace('REPLACEME', val[0]);
trHTML+=
“[为简洁起见删除]”
.replace('REPLACEME',val[0]);

最后,我找到了一个解决方案

我将路由和id保存在一个变量中,然后用url替换:id值。替换函数

下面是代码

var url = '{{ route("admin.service.edit", ":id") }}';
url = url.replace(':id', val[0]);
<a href="'+url+'" title="Edit Service"><i class="fa fa-pencil"></i></a>
var url='{{route(“admin.service.edit”,“:id”)}';
url=url.replace(':id',val[0]);

我不清楚你在问什么。什么是“大胆的部分”?请修改以更好地解释您正在尝试做什么以及您需要什么(它如何不起作用)。如果你删除了一些非必要的东西,比如所有的引导类、图标元素和内联样式,这会有所帮助。