链接这个jquery表达式
Chain this jquery expression
是否有一种方法来链这个jQuery表达式或改进它?我真正想做的就是把"my text"改成"new text"。
HTML:<div id="myDiv">
my text
<span>button 1</span>
<span>button 2</span>
</div>
Javascript: var element = $("#myDiv");
var buttons = element.children().detach();
element.text("new Text");
element.append(buttons);
var element = $("#myDiv");
var buttons = element.children().detach();
element.text("new Text").append(buttons);
应该可以正常工作!你总是可以链接使用相同选择器的方法。
.contents()
获取所有子节点,包括文本节点。获取第一个节点并更改textContent
属性。
$('#myDiv').contents()[0].textContent = "new text";
如果你需要更复杂,你可能想看看Karl Swedberg的Text Children插件,它也提供了各种不同的选项。
jQuery主要关注于操作元素节点(nodeType
1),而不是在元素节点上下文之外操作文本节点。有时最好的方法是下拉到"raw JavaScript":)
根本不需要使用jQuery…对于这样的简单任务,纯JavaScript要快得多。
var element = document.getElementById('myDiv');
element.innerHTML = element.innerHTML.replace('my text','new text');
http://jsfiddle.net/xAhA6/8/一个简单的方法是用span来包装我的文本。然后你可以做$('#myDiv span').first().text('new text');
对于链接:
如此:
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')
小提琴:http://jsfiddle.net/maniator/DQtjE/
为什么不用<p>
来包装文本呢?那么你只需要:
$("#myDiv p").text("new Text");
相关文章:
- JavaScript中的立即调用函数表达式(IIFE)-传递jQuery
- jQuery选择器错误:无法识别的表达式
- 无法识别jQuery表达式
- jquery 1.8.0语法错误,无法识别的表达式:>
- PHP中的jQuery表达式
- JQuery无法识别的表达式[href=#undefined]
- 正则表达式 jquery 将数字替换为链接
- jQuery中的查询选择器导致无法识别的表达式
- Jquery 替换所有文本语法正则表达式中的变量
- 如何修复 jQuery 1.8“语法错误,无法识别的表达式”错误
- jQuery:语法错误,无法识别的表达式:.Marketing&通讯
- 使用jquery从angular表达式中获取内容失败
- SyntaxError:应为表达式,得到''Jquery
- 使用jQuery自动完成表达式引擎
- Jquery正则表达式剪切<脚本>标签
- 未捕获错误:语法错误,无法识别表达式Jquery选择器单引号与双引号
- 正则表达式 jQuery 不起作用
- 正则表达式 jQuery 验证器包含非英文字符
- 无法识别的表达式jquery属性选择器
- 正则表达式:JQuery检查