当点击相应的链接时,如何使用 jQuery 将标签更改为文本字段?
我有一个表格,我需要当单击特定范围时,它之前的范围从标签更改为文本字段。下表:
<table>
<tbody>
<tr>
<td><span class="spanName">John Doe</span> <span class="spanDefaultName">Alter</span></td>
</tr>
<tr>
<td><span class="spanName">Jayne Doe</span> <span class="spanDefaultName">Alter</span></td>
</tr>
</tbody>
</table>
现在假设单击 John Doe 后的“更改”,其之前的范围必须从“John Doe”更改为文本字段(这也适用于所有其他字段)。如果单击 John Doe 的 alter span,结果将如下所示:
<table>
<tbody>
<tr>
<td><span class="spanName"><input type="text" /></span> <span class="spanDefaultName">Alter</span></td>
</tr>
<tr>
<td><span class="spanName">Jayne Doe</span> <span class="spanDefaultName">Alter</span></td>
</tr>
</tbody>
</table>
如果可能,并且我认为可以通过使用 :next 或类似的东西来使用 jQuery,我必须仅使用类而不是 ID 来实现此目的。
另外,如果您认为我应该使用锚而不是跨度,请告诉我。我使用跨度只是因为 jQuery 中的 :next 和 :previous 功能。
任何帮助将不胜感激
I have a table and I need that when a particular span is clicked, the span before it changes from a label to a text field. The following is the table:
<table>
<tbody>
<tr>
<td><span class="spanName">John Doe</span> <span class="spanDefaultName">Alter</span></td>
</tr>
<tr>
<td><span class="spanName">Jayne Doe</span> <span class="spanDefaultName">Alter</span></td>
</tr>
</tbody>
</table>
Now lets say that the Alter after John Doe is clicked, the span before it has to change from just John Doe to a textfield (This applies also for all the others). This is how the result will look like if John Doe's alter span is clicked:
<table>
<tbody>
<tr>
<td><span class="spanName"><input type="text" /></span> <span class="spanDefaultName">Alter</span></td>
</tr>
<tr>
<td><span class="spanName">Jayne Doe</span> <span class="spanDefaultName">Alter</span></td>
</tr>
</tbody>
</table>
If possible, and I think it is possible with jQuery by using :next or something of this sort, I have to implement this with using just classes and not IDs.
Also, if you think that I should use an anchor instead of a span, please let me know. I am using a span simply because of the :next and :previous functionalities in jQuery.
Any help would be greatly appreciated
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
这将使您在单击时获得文本框,允许您调整文本,然后在模糊时将跨度设置回输入的新文本。 示例
JavaScript
HTML
This will get you the textbox on click, allow you to adjust text, then on blur set the span back with the new text entered. Example
JavaScript
HTML
像这样的东西:
演示: http://jsfiddle.net/karim79/MWwyR/4/
Something like this:
Demo: http://jsfiddle.net/karim79/MWwyR/4/
这怎么样?
$('span.clickable').click(function () { $(this).prevAll('span').last().html('<输入...>'); } );
How's this?
$('span.clickable').click(function () { $(this).prevAll('span').last().html('<input ....>'); });
我认为这应该满足您的要求
虽然如果您要提交此表单,您的输入将需要一个名称属性
I think this should do what you want
Though if you are going to submit this form your input will need a name attribute
您应该能够通过执行以下操作来得到它:
这将从跨度中获取文本,创建一个文本框,然后将文本插入其中。它将适用于页面上的所有实例。
编辑:根据更新的请求,这将根据所需范围内是否有输入元素进行切换。如果是这样,它将使用文本框的值恢复为文本。
you should be able to get this just how it is by doing:
This will get the text out of the span, create a text box, and insert your text into it. it will work for all instances of this on the page.
Edit: as per the updated request, this will toggle based on if there is an input element in the needed span. If so, it will revert to text using the value of the text box.