Javascript 链接这个jquery表达式
有没有办法链接这个jQuery表达式或改进它?我真正想做的就是把“我的文本”改成“新文本” HTML:Javascript 链接这个jquery表达式,javascript,jquery,Javascript,Jquery,有没有办法链接这个jQuery表达式或改进它?我真正想做的就是把“我的文本”改成“新文本” HTML: 应该很好!始终可以链接使用相同选择器的方法 一个简单的方法是用一个span来包装我的文本。然后可以执行$('#myDiv span').first().text('newtext') 至于链接: 这项工作: var element = $("#myDiv"); var buttons = element.children().detach(); element.text("new Text")
应该很好!始终可以链接使用相同选择器的方法 一个简单的方法是用一个span来包装我的文本。然后可以执行
$('#myDiv span').first().text('newtext')代码>
至于链接:
这项工作:
var element = $("#myDiv");
var buttons = element.children().detach();
element.text("new Text").append(buttons);
您可以随时制作一个插件来执行您想要的操作:
(function($){
$.fn.changeText = function(newText) {
return this.each(function() {
var element = $(this);
var divs = element.children().detach();
element.text(newText).append(divs);
});
};
})(jQuery);
//use it like so:
$('#myDiv').changeText('new text');
如果您想继续操作$('#myDiv')
Fiddle:.contents()
获取所有子节点,包括文本节点。获取第一个节点并更改textContent
属性
$('#myDiv').contents()[0].textContent = "new text";
如果你需要变得更复杂,你可能想看看,它也提供了各种不同的选择
jQuery主要关注于操作元素节点(nodeType
1),而不是在元素节点上下文之外操作文本节点。有时,最好的方法是下拉到“原始JavaScript”:)为什么不将文本包装成?那么您只需要:
$(“#myDiv p”).text(“新文本”)代码>根本不需要麻烦jQuery。。。对于这样的简单任务,纯JavaScript要快得多
var element = document.getElementById('myDiv');
element.innerHTML = element.innerHTML.replace('my text','new text');
@Razor Storm-您的第一个答案将更改两个
元素中也包含按钮文本的文本。哎呀,我更改了答案以解决此问题。我喜欢您的解决方案,但我担心浏览器对textContent和innetText的支持。(+1)无论如何。我可能会使用类似这样的方法来检索text var text=x.innerText | | x.textContentyeah,您也需要将其熨平:)
(function($){
$.fn.changeText = function(newText) {
return this.each(function() {
var element = $(this);
var divs = element.children().detach();
element.text(newText).append(divs);
});
};
})(jQuery);
//use it like so:
$('#myDiv').changeText('new text');
$('#myDiv').contents()[0].textContent = "new text";
var element = document.getElementById('myDiv');
element.innerHTML = element.innerHTML.replace('my text','new text');