如何重用JQuery的结果进行javascript文本匹配?

时间:2016-07-14 11:10:13

标签: javascript jquery html replace string-matching

我有html元素作为字符串进入函数,然后我将元素作为字符串注入其中,但令我惊讶的是它没有用。

类似的东西:

var replacement = $(row).find('td:last').append("<script type=\"text/javascript\"> function remove" + override.SessionKey + "(){ $('tr[session-key=\"" + override.SessionKey + "\"]').remove(); }</script><input type=\"button\" value = \"Remove\" onClick=\"remove" + override.SessionKey + "()\" />")

row.replace($(row).find('td:last')[0],replacement[0])

经过一些进一步的调查后,我将其缩小到匹配replace函数失败,基本上在用JQuery搜索后结果不能用于文本匹配

这是我的意思的一个例子:

var r = "<tr class=\"hide\" session-key=\"SessionProductDataMotorEnrichmentSagaFactorScore\" session-key-data-type=\"Decimal\"><td id=\"tdDisplayName91\">SagaFactorScore</td><td id=\"tdValue91\"></td></tr>"

$('div').text(r.indexOf($(r).find('td:last')[0]));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<div></div>

当我使用原始html字符串的内容时,人们会期望总是匹配。

如何重用JQuery的结果进行文本匹配?

2 个答案:

答案 0 :(得分:2)

我认为你正在寻找.outerHTML

var r = "<tr class=\"hide\" session-key=\"SessionProductDataMotorEnrichmentSagaFactorScore\" session-key-data-type=\"Decimal\"><td id=\"tdDisplayName91\">SagaFactorScore</td><td id=\"tdValue91\"></td></tr>"

$('div').text(r.indexOf($(r).find('td:last')[0].outerHTML));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<div></div>

答案 1 :(得分:0)

这是一种做你正在做的事情的可怕方式。

var btn = $("<button></button>");
btn.attr("type","button").text("Remove").on("click",function() {
    var tr = $(this).closest("tr");
    tr.remove();
});

这将创建一个按钮,其关联事件直接绑定到它。然后,您可以将其附加到所有行,例如:

$("tr>td:last-child").append(function() {return btn.clone(true);});