首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javascript中的3级引用

javascript中的3级引用
EN

Stack Overflow用户
提问于 2012-11-29 07:34:31
回答 2查看 243关注 0票数 0

在我的MVC应用程序中,我有一段javscript代码,可以将一行追加到表中。使用javascript (jquery)追加行。添加的字符串还包含一些特定于mvc的代码。我在获取正确的引号和转义时遇到了问题。我已经尝试了几种不同的组合,下面是我所拥有的:

代码语言:javascript
复制
var row = $("<tr><td><input type='hidden' name='LocationArray' value='"
 + CellValue + "'>" + CellText +
 "</td><td class='delete' >" +
 "<img src='@Url.Content(\"~/Content/images/delete_x.png\")' /></td></tr>");
EN

回答 2

Stack Overflow用户

发布于 2012-11-29 07:38:07

我不认为你想转义Razor字符串:

代码语言:javascript
复制
@Url.Content("~/Content/images/delete_x.png")

请记住,首先要解析Razor语法。这让事情变得更加清晰:

代码语言:javascript
复制
@{ var url = Url.Content("~/Content/images/delete_x.png"); }

var row = $("<tr><td><input type='hidden' name='LocationArray' value='"
    + CellValue + "'>" + CellText +
    "</td><td class='delete' >" +
    "<img src='@url' /></td></tr>");

脚注:一旦你达到了这个级别的动态超文本标记语言构造,可能是时候考虑一个客户端模板库(下划线,Mustache,$.tmpl,等等)。使用Underscore

代码语言:javascript
复制
<script type='text/template' id='the-template'>
    <tr>
        <td>
            <input type='hidden' name='LocationArray' value='<%= val %>' />
            <%= text %>
        </td>
        <td class='delete' >
           <img src='@Url.Content("~/Content/images/delete_x.png");' />
        </td>
   </tr>
</script>

<script>
    var tmpl = _.template($("#the-template").html());
    var data = { val: "hello", text: "world" };
    var html = tmpl(data);
    $("#target").html(html);
</script>
票数 6
EN

Stack Overflow用户

发布于 2012-11-29 07:45:03

这就是为什么你应该用jquery构建你的元素。

代码语言:javascript
复制
var el = $("<tr>")
  .append($("<td>")
    .append($("<input>")
    .attr({type: "hidden", name: "LocationArray"})
    .val(CellValue)
    .text(CellText)
  )
)

等等。您将更清楚地了解您要实现的目标,并且您将能够捕获错误并更容易地进行更改。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13616350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档