[英]Daisy Chained .replace() with regex - is there a better way?
[英]Is there a better way to repeat chained jQuery methods?
我重复.last().text()
(见下文)。 有没有一种方法可以使我更有效地执行此操作,以使我的代码看起来不那么冗长? 是否可以将.last().text()
在变量中? 我是新手。
$("div").last().text(`${date} `).append("<span class = 'username'></span><span class = 'text'></span>");
$(".username").last().text(`${message.username}`);
$(".text").last().text(` ${message.text}`);
把它放在一个函数中
const setTextToLastOf = (selector, text) => {
return $(selector).last().text(text);
}
然后用
const appendText = "<span class = 'username'></span><span class = 'text'></span>";
setTextToLastOf("div", `${date} `).append(appendText);
setTextToLastOf(".username", `${message.username}`);
setTextToLastOf(".text", ` ${message.text}`);
您可以创建自己的jQuery函数。
在下面的代码片段中,您可以看到如何为jQuery定义lastText()
函数。
更新了答案,因此您也可以设置最后一个文本。
如果设置了文本,则返回jQuery对象( this
),以便可以在其上保留链接函数。 如果获取文本,则该函数将返回带有最后一个元素的文本的字符串。
jQuery.fn.lastText = function(text) { if(text == null) { return this.last().text(); } else { return this.last().text(text); } }; $(document).ready(function(){ var currLastText = $('.par').lastText(); console.log("current last text: " + currLastText ); var newLastText = $('.par').lastText("Last").lastText(); console.log("New last text: " + newLastText); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <p class="par">First</p> <p class="par">Second</p>
减少混乱的一种方法是使用:last
选择器:
$("div:last").text(`${date} `).append("<span class = 'username'></span><span class = 'text'></span>");
$(".username:last").text(`${message.username}`);
$(".text:last").text(` ${message.text}`);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.