Javascript 使用图像更改li中的文本
我想更改一个li中的文本。但是这个李有一个img。 以下是html:Javascript 使用图像更改li中的文本,javascript,jquery,html,html-lists,Javascript,Jquery,Html,Html Lists,我想更改一个li中的文本。但是这个李有一个img。 以下是html: <div> <ul> <li><b><img src="../../../Images/folder1/image1.png">Text1</b><i>0</i></li> <li><b><img src="../../../Images/folder1/image2.png">Tex
<div>
<ul>
<li><b><img src="../../../Images/folder1/image1.png">Text1</b><i>0</i></li>
<li><b><img src="../../../Images/folder1/image2.png">Text2</b><i>1</i></li>
<li><b><img src="../../../Images/folder1/image3.png">Text3</b><i>2</i></li>
<li><b><img src="../../../Images/folder1/image4.png">Text4</b><i>3</i></li>
<li><b><img src="../../../Images/folder1/image5.png">Text5</b><i>4</i></li>
</ul>
</div>
但它正在取代一切,包括img。
我只想更改文本:Text1,Text2
有什么想法吗
谢谢 要访问元素中的文本节点,需要使用
contents()
,然后按节点类型使用filter()
。然后可以使用replaceWith()
更改文本。试试这个:
$('li:first b').contents().filter(function() {
return this.nodeType == 3;
}).replaceWith('foo');
很明显,我硬编码了它以使用第一个
li
元素,但是您可以根据需要更改选择器。您也可以这样做:
将图像存储在单独的变量中,并在替换文本后将图像放回原处
$("li b").each(function () {
var $img = $(this).find('img');
$(this).text(sometext).prepend($img);
})
您要替换什么文本?
Text1
或0
?使用什么?有两个文本内容,您要替换其中一个,并且在$(this.HTML('text')中使用
内部的
似乎是无效的HTML标记。。您也可以尝试一下这是最优雅的方式,但是我想使用元素来更改文本,它给了我错误:$('li:first b').contents().filter(function(){return this.nodeType==3;}).replaceWith($(this.text()+“hello”)示例的replaceWith中的code>$(this).text()
不在范围内。您需要使用一个处理函数:replaceWith(函数(){return$(this.text()+'foo';})代码>
$("li b").each(function () {
this.childNodes[1].textContent = "32323";
})
$("li b").each(function () {
var $img = $(this).find('img');
$(this).text(sometext).prepend($img);
})