我有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的结果进行文本匹配?
答案 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);});