我有一些JQuery加载了许多元素中的一个,例如,在列表项的多行中的无序列表中有一个<li>
:
this.randomtip = function(){
var length = $("#tips li").length;
var ran = Math.floor(Math.random()*length) + 1;
$("#tips li:nth-child(" + ran + ")").show();
};
$(document).ready(function(){
randomtip();
});
但是,我认为将它转换为JQuery插件以使其更加全局化使用会更好,因此我可以在需要时调用它来处理不同的元素和用例。
我意识到我需要取出特定的选择器并将它们转换为$(this)
,可能是基于查看其他JQuery插件的一些代码。
这是我到目前为止所得到的很多语法错误。我已经尝试了很多不同的迭代同样的事情几个小时但没有快乐:
(function ( $ ) {
$.fn.randomtip = function () {
var length = $(this).length;
var ran = Math.floor(Math.random()*length) + 1;
$(this).find (':nth-child' '+ ran + ')").show();
})(jQuery);
我在哪里得到语法错误是我所拥有的:
$(this).find (':nth-child' '+ ran + ')").show();
答案 0 :(得分:2)
$(this).find()
行上有一些拼写错误。以下是正确的版本:
(function ( $ ) {
$.fn.randomtip = function () {
var length = $(this).length;
var ran = Math.floor(Math.random() * length) + 1;
$(this).find (':nth-child('+ ran + ')').show();
})(jQuery);
答案 1 :(得分:0)
中存在语法问题
$(this).find (':nth-child' '+ ran + ')").show();
也许你想要这个?
$(this).find (':nth-child(' + ran + ')').show();