javascript - 查找、替换和附加新的 dom 元素

标签 javascript jquery html jquery-selectors

我的目标是浏览表格并附加新的 <tr>与之前的同级数据具有相同的数据,但内容文本有所更改。

我的 html 的一部分如下:

<tr>
  <td><label>Share - Spanish</label></td>
  <td><input type="text" id="blog_share_es" name="blog_share_es" size="30" /></td>
</tr>

在我当前的 Javascript 函数中 $(this)<label>标签。我已成功将“西类牙语”一词替换为“意大利语”,内容如下:

    var italian = $(this).text().replace("Spanish", "Italian");

然后将其附加到表中,如下所示:

var parentDiv = $(this).parent().parent();
$('<tr><td><label>'+italian+'</label></td><td><input type="text" id="logout_de" name="logout_de" size="30"/></td></tr>').insertAfter(parentDiv);

我现在如何选择 <input>并替换 id 中的所有“_es”实例和name使用“_it”,以便我在 html 中获得以下输出(获取 html 的格式不是必需的,但这是最佳的!):

<tr>
  <td><label>Share - Italian</label></td>
  <td><input type="text" id="blog_share_it" name="blog_share_it" size="30" /></td>
</tr>

最佳答案

变成插件

DEMO

(function ($) {
    $.fn.newRow = function (language, suffix) {
        $lastSibling = this.find("tr").last().clone();
        $label = $lastSibling.find("label");
        $labelText = $label.text();
        $label.text($labelText.replace($labelText.substring($labelText.indexOf("- ") + 2), language));
        $input = $lastSibling.find("input");
        $id = $input.attr("id");
        $name = $input.attr("name");
        $input.attr("id", $id.replace($id.substring($id.lastIndexOf("_") + 1), suffix))
              .attr("name", $name.replace($name.substring($name.lastIndexOf("_") + 1), suffix));
        this.find("tbody").append($lastSibling);
        return this;
    };
})(jQuery);

$("#yourTable").newRow("Italian", "it");

关于javascript - 查找、替换和附加新的 dom 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25315518/

相关文章:

javascript - 在 Javascript 中使用变量拆分和连接

javascript - 如何改变Youtube评论颜色?

jquery - 如果无法在浏览器中打开文件,则停止浏览器下载文件

jquery - 如何仅在图像悬停时显示 fancybox 标题

javascript - 如果使用 AJAX 调用,jQuery Tablesorter *Pager* 将无法工作

javascript - 让iframe自动调整高度

javascript - 使用 typeahead,如何将匹配的用户键入的输入视为匹配?

javascript - 如何通过索引隐藏 HTML 行?

java - 从按钮单击调用的 jsp scriptlet 函数

jQuery 将整个 DIV 拉入字符串变量?