有一段html字符串<div class="menu"><img src="img/1.png">Book<img class="tip" src="image/tip.png"></div>
请问用jquery有没有什么办法把Book替换为别的字符串?
请问用jquery有没有什么办法把Book替换为别的字符串?
解决方案 »
- 如何利用javascript实现部分页面刷新
- fusioncharts 的setdataurl 传参数
- 数组问题,100分 请教高手
- js 传值给 flash 或者是 .cs后台
- js传值给文本框,文本框再传给下个页面???如何实现??
- 100分继续请教:如何把list里的内容通过excel的格式导出
- 急急急!求助: 给按钮绑定一个对话框,将按钮上的原来事件转移到对话框的ok按钮上
- js执行一个长时间的函数时,页面会假死,要如何解决
- 这个函数怎么写?在线等!
- 请问如何在文本框中只允许输入字母?大小写不限,最好能限制全、半角——在线等待,谢谢
- 为什么老提示变量没定义?
- 今天发现个问题,javascript传参,和java不同,请高手提醒.
<!DOCTYPE HTML>
<html>
<head>
<meta charset="gb2312" />
<title></title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<style>
</style>
</head>
<body>
<div class="menu"><img src="img/1.png">Book<img class="tip" src="image/tip.png"></div>
<script>
$('.menu').html(function(){
return $(this).html().replace('Book', 123);
})
</script>
</body>
</html>
1. 字符串不是固定的,所以不能写死了,可以使Book,也可以是别的
2. img上都绑定了事件,这么一来就要重新绑定一遍了
可以使用浏览器的方法修改String.prototype['trim'] = function(){
return this.replace(/^\s*|\s*$/g,'');
};
function replaceBook(){
var $d = $('div.menu'), d = $d.get(0);
var nodes = d.childNodes;
for(var i=0; i<nodes.length; i++){
var node = nodes.item(i);
if(node.nodeType==3){
if(node.nodeValue.trim() == 'Book'){
node.nodeValue = "replace Book!";
}
}
}
}
你可以试下下面的代码
<!DOCTYPE HTML>
<html>
<head>
<script src="jquery.js"></script>
</head>
<body>
<div class="menu">
<img src="img/1.png" />
Book
<img class="tip" src="image/tip.png"/></div>
<script>
function changeText(el, str){
$(el).contents().each(function(){
if(this.nodeType === 3 && /\S+/.test(this.nodeValue)){
this.nodeValue = this.nodeValue.replace(/^(\s*)[\s\S]+?(\s*)$/, "$1" + str + "$2");
}
});
}
changeText($("div.menu"), "mystring");
</script>
</body>
</html>