jquery替换和删除变量

时间:2012-03-05 13:41:15

标签: jquery html

我已经用这种方式替换了所选择的替换和插入的dom元素:

$(".editLink").click(function () {
    var $temp = $(".editLink").parent().prev().find("label").html();

    var $tempBox = $(".editLink").parent().prev().find("label").replaceWith("<input type='text' name='dataUpdate'/>");

    $tempBox.insertAfter("<input type='submit' value='Update'/>");
});

然而,变化闪烁,......并且不会持续存在。它们只持续一秒钟......(我想只是在活动时间。我怎么能让它们永远存在?

更新:

<table width="400px">
<form action="/Admin/Update?Length=4" method="post">
<tr>
    <td>
        <label for="fadsf">
            fadsf</label>
    </td>
    <td>
        <a class="editLink" href="/Admin/MenuManagement?Length=5">Edit</a>
    </td>
    <td>
        <a class="deleteLink" data-ajax="true" data-ajax-mode="replace" data-ajax-update="#1"
            href="/Admin/Delete?deleteID=1&amp;unDelete=1" id="1" title="0">Delete</a>
    </td>
</tr>
</form>

2 个答案:

答案 0 :(得分:1)

我猜你会建议它们只在事件发生时间内持续存在,因为你绑定了一个<a>标签,导致页面重新加载或导航到其他地方。你需要像这样阻止这种默认行为:

$(".editLink").click(function (e) {
   ... other code

   $(e).preventDefault();

   ... other code
});

文档 - https://developer.mozilla.org/en/DOM/event.preventDefault

更新 - 基于您现在提供的HTML

您的HTML看起来无效。您无法在table代码和tr代码之间嵌套表单代码,并希望它能够正常运行。首先,将表单标记移到表格外部。其次,使用匹配的</table>标记关闭表格。也许这会有所帮助。

希望这有帮助!

答案 1 :(得分:1)

从点击处理程序返回false将阻止浏览器跟踪href

中的url
$(".editLink").click(function () {
    var $temp = $(".editLink").parent().prev().find("label").html();

    var $tempBox = $(".editLink").parent().prev().find("label").replaceWith("<input type='text' name='dataUpdate'/>");

    $tempBox.insertAfter("<input type='submit' value='Update'/>");

    return false;
});

您还可以使用event.preventdefault() http://api.jquery.com/event.preventDefault/

  $(".editLink").click(function (event) {
         event.preventDefault();
         /* your code*/

  })