如何将 JQuery 的结果重新用于 javascript 文本匹配?

How can I reuse result from JQuery for javascript textual 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 的结果进行文本匹配?

这是一种糟糕的做你想做的事情的方式。

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);});

我想你在找 .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>