jQuery将元素中的html/text替换为元素中的其他元素
jQuery replace html/text of an element with others elements inside
那么,我有下面的td元素,里面有很多其他的元素:
<td height="43" style="border-bottom:2px solid #2b2b2b;" id="arrow2" >
<label for="pontoart">Ponto de Articulação:</label>
<input type="text" name="pontoart" id="pontoart" value="" required>
<a href="#" id="openbox2" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('+2','','botao de + com hover 2.png',1)">
<img src="botao de + 2.png" alt="" width="24" height="31" id="+2">
</a>
</td>
我有下面的jquery函数。基本上,当单击"+"图像时,它会显示一个隐藏框。我希望它也改变文本显示一个小的html箭头(代码❬
),当框是可见的。
$(document).ready(function(){
$('#openbox2').click(function(){
$('#box2').toggle();
if ($('#box2').is(':visible')) {
?
}
});
});
我想在if里面放一个.text("❬")
。问题是,我很困惑要在选择器中放什么。我希望html代码保持不变,只有❬最后。我已经尝试了所有的id,没有一个给出结果。
<td height="43" style="border-bottom:2px solid #2b2b2b;" id="arrow2" >
<label for="pontoart">Ponto de Articulação:</label>
<input type="text" name="pontoart" id="pontoart" value="" required>
<a href="#" id="openbox2" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('+2','','botao de + com hover 2.png',1)">
<img src="botao de + 2.png" alt="" width="24" height="31" id="+2">
</a>❬
</td>
有什么想法吗?非常感谢!
您可以使用:
$("#arrow2").append("❬");
这将在td的末尾添加箭头。
如果你想在插入箭头后删除它,你可以为元素创建一个新的jQuery对象,其中包含html实体,而不是仅仅将html实体插入文档而无法删除它。
-
使用
$(this).parent().append(element)
将我们的新元素附加到被单击元素的父元素,在本例中是<td>
元素。 -
使用
jQuery.remove(element)
删除我们的新元素,而不是完全删除它。这意味着我们可以再次创建它,而无需创建一个新的jQuery对象。
var arrow = $('<span>❬</span>');
$(document).ready(function() {
$('#openbox2').click(function() {
$('#box2').toggle();
if ($('#box2').is(':visible')) {
$(this).parent().append(arrow);
} else {
arrow.remove();
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td height="43" style="border-bottom:2px solid #2b2b2b;" id="arrow2">
<label for="pontoart">Ponto de Articulação:</label>
<input type="text" name="pontoart" id="pontoart" value="" required>
<a href="#" id="openbox2" style="text-decoration: none;">
<img src="//placehold.it/24x31" alt="" width="24" height="31" id="+2">
</a>
</td>
</tr>
</table>
<div id="box2" style="display:none">Hello foo bar world!</div>
试试这个
$(document).ready(function(){
$('#openbox2').click(function(){
$('#box2').toggle();
if ($('#box2').is(':visible')) {
$(this).closest('td').find('label').append('❬')
} else {
$(this).closest('td').find('label')...
}
});
});
你可以使用jQuery的after
方法来放置❬在a
标签之后。
$('#openbox2').after('❬');
相关文章:
- 只要存在,就用另一个元素替换一个元素
- 用HTML元素替换字符串的一部分
- 将父元素替换为其内容
- 单击时将SVG元素替换为另一个
- 用javascript(无jquery)将元素替换为文本
- 在不同的html文件中将html从一个元素替换为另一个元素
- 如何用另一个元素替换一个元素
- 将所有元素替换为另一个 jquery
- 使用本机 JS 将 HTML 元素替换为字符串内容
- 将 DOM 元素替换为仅开始标记(或结束标记)
- JQuery 将表单元素替换为文本
- 如何将 html 元素替换为 ajax 响应
- 将数组中的元素替换为相应的字典项 JavaScript
- JQuery:用另一组元素替换一组元素的优雅方式
- 将内容可编辑元素替换为有序列表时保持可编辑性
- 用新的克隆元素替换克隆元素
- 用新的DOM元素替换()任意文本
- 如何为没有ID的元素替换类名
- 如何使用regex将段落元素替换为新行
- 是否可以用另一个td元素替换HTML表td元素