我有一个像这样的表结构,没有任何ID,跨度有相同的文本。
<table>
<tr>
<td>
<span>Name</span>
</td>
<td>
<span>Name</span>
</td>
</tr>
</table>
如果我点击第一个跨度,这将打开一个弹出窗口。弹出包含文本框和按钮。如果我键入一些文本并单击按钮,则单击的跨度应替换为新输入的文本。如何识别点击的跨度并替换文本?
我们需要为第二次跨度做同样的事情。
由于
答案 0 :(得分:0)
如果您在span中添加了一个click事件,那么您将使用“this”标记引用。然后,如果你在上面调用.text(),相关的标签就会被更新。
像那样:$('span').click(function() {
$(this).text('new text');
})
以下是使用jQuery Dialog小部件编辑范围文本的示例
答案 1 :(得分:0)
当你单击span时,你可以将它传递给你的函数:
<table>
<tr>
<td>
<span onclick="openPopup(this);">Name</span>
</td>
<td>
<span onclick="openPopup(this);">Name</span>
</td>
</tr>
</table>
您必须存储该元素,以便稍后在使用弹出窗口完成时可以更改它。
function openPopup(el)
{
// open popup and if button pressed
el.innerHTML = yourNewText;
}
答案 2 :(得分:0)
以下是如何实现此目标的简单示例:
代码段:
$(document).on("click","span",function(){
alert($(this).text());
// some popup code here
$(this).html("Some new Name");
});
编辑:
我建议尽管在这些跨度上放置一些class / id,以便为。 on()方法提供更好的选择器。因此,您可以使用 span.spanClass
等 span 。答案 3 :(得分:0)
试试这个:
<table>
<tr>
<td>
<span onclick="openPopup(this);">Name</span>
</td>
<td>
<span onclick="openPopup(this);">Name</span>
</td>
</tr>
</table>
<script type="text/javascript">
function openPopup (o) {
var newText = prompt("Enter some text: ");
$(o).text(newText);
}
</script>