jQuery插件理论

jQuery插件理论,jquery,Jquery,我正计划在jQuery中构建一个小插件——只是想看看你对jQuery是否适合这项工作的看法 基本上,我会有两个文本区域,在这里输入字符串(逗号或新行分隔) e、 g: 文本区域1内容:1,2,3,4 文本区域2内容:a、b、c、d 按下submit后,我希望jQuery创建每个可能的组合(1a、1b、1c、1d、2a、2b等)并按a->z顺序返回 Q1。jQuery可以检测新行吗?(没有html标记) Q2。每个列表将有100-1000个条目。jQuery能应付吗? Q3。您知道任何jQuery

我正计划在jQuery中构建一个小插件——只是想看看你对jQuery是否适合这项工作的看法

基本上,我会有两个文本区域,在这里输入字符串(逗号或新行分隔)

e、 g:
文本区域1内容:
1,2,3,4

文本区域2内容:
a、b、c、d

按下submit后,我希望jQuery创建
每个可能的组合(1a、1b、1c、1d、2a、2b等)
并按a->z顺序返回

Q1。jQuery可以检测新行吗?(没有html标记)

Q2。每个列表将有100-1000个条目。jQuery能应付吗?

Q3。您知道任何jQuery函数都可以像
那样执行所有可能的组合吗
,或者这是for循环吗?


非常感谢您的任何建议。

对于jQuery来说,这听起来是一份不错的工作;一般来说,当您希望使用$(“某些选择器”)实例化高度可重用的东西时,jquery插件非常有用

  • jQuery不提供任何本机方法来检测换行符,您需要自己将字符串拆分到您喜欢的字符上(逗号、换行符、空格等)

  • 在这里,我不太关心jQuery与对象的耦合,而更关心代码如何处理它。jQuery在集合上提供迭代器,但可以编写它对每个元素调用的函数。确保传递给jQuery.each的函数足够快

  • 如果不关心唯一性,可以使用嵌套循环。例如:

  • (psuedo代码)


    这听起来像是jQuery的一项好工作;一般来说,当您希望使用$(“某些选择器”)实例化高度可重用的东西时,jquery插件非常有用

  • jQuery不提供任何本机方法来检测换行符,您需要自己将字符串拆分到您喜欢的字符上(逗号、换行符、空格等)

  • 在这里,我不太关心jQuery与对象的耦合,而更关心代码如何处理它。jQuery在集合上提供迭代器,但可以编写它对每个元素调用的函数。确保传递给jQuery.each的函数足够快

  • 如果不关心唯一性,可以使用嵌套循环。例如:

  • (psuedo代码)


    一个简单的实现:

    function getValues( id1, id2, delimiter ) {    
        var elem1, elem2,
            arr1, arr2,
            i, j, 
            result = [];
    
        elem1 = document.getElementById( id1 );
        elem2 = document.getElementById( id2 );
        arr1 = elem1.value.split( delimiter );
        arr2 = elem2.value.split( delimiter );
    
        for ( i = 0; i < arr1.length; i += 1 ) {
            for ( j = 0; j < arr2.length; j += 1 ) {
                result.push( arr1[i].trim() + arr2[j].trim() );
            }
        }
    
        return result.sort().toString();
    }
    
    函数getValues(id1,id2,分隔符){
    变量elem1,elem2,
    arr1,arr2,,
    i、 j,
    结果=[];
    elem1=document.getElementById(id1);
    elem2=document.getElementById(id2);
    arr1=elem1.value.split(分隔符);
    arr2=elem2.value.split(分隔符);
    对于(i=0;i
    现场演示:

    说明:

    此函数接受三个参数:

    • 前两个参数是两个TEXTAREA元素的ID名称
    • 第三个参数是分隔符(字符串),例如“
      ”,“
      ”\n“
    首先,获取元素,然后获取它们的内容(文本),并使用提供的分隔符将其拆分为一个数组

    现在,您只需使用两个嵌套for循环来构造一个值数组


    最后,对该数组进行排序并将其转换为字符串。

    一个简单的实现:

    function getValues( id1, id2, delimiter ) {    
        var elem1, elem2,
            arr1, arr2,
            i, j, 
            result = [];
    
        elem1 = document.getElementById( id1 );
        elem2 = document.getElementById( id2 );
        arr1 = elem1.value.split( delimiter );
        arr2 = elem2.value.split( delimiter );
    
        for ( i = 0; i < arr1.length; i += 1 ) {
            for ( j = 0; j < arr2.length; j += 1 ) {
                result.push( arr1[i].trim() + arr2[j].trim() );
            }
        }
    
        return result.sort().toString();
    }
    
    函数getValues(id1,id2,分隔符){
    变量elem1,elem2,
    arr1,arr2,,
    i、 j,
    结果=[];
    elem1=document.getElementById(id1);
    elem2=document.getElementById(id2);
    arr1=elem1.value.split(分隔符);
    arr2=elem2.value.split(分隔符);
    对于(i=0;i
    现场演示:

    说明:

    此函数接受三个参数:

    • 前两个参数是两个TEXTAREA元素的ID名称
    • 第三个参数是分隔符(字符串),例如“
      ”,“
      ”\n“
    首先,获取元素,然后获取它们的内容(文本),并使用提供的分隔符将其拆分为一个数组

    现在,您只需使用两个嵌套for循环来构造一个值数组


    最后,对数组进行排序并将其转换为字符串。

    jQuery在这些任务中都帮不了你,但你可以坚持使用普通JavaScript。(1)是,(2)是,(3)是的,我想,虽然实现一个函数很简单,但更适合这种情况。jQuery在这些任务中都帮不了你,但你可以坚持使用普通JavaScript。(1)是,(2)是,(3)是的,我想,虽然实现一个函数很简单,但它更适合这种情况。干得好!请你花一分钟检查一下密码好吗?有时我仍然难以完全理解代码的工作方式。很好!一个建议是:不要传入id,而是传入元素本身。这样,即使元素没有ID,它也能工作。@Šime Vidas-非常简单和直接!谢谢你的帮助!最后一个问题,在代码中,您将返回值设置为逗号分隔,我无法计算出该值。@NewUser默认情况下,数组的
    toString
    方法会这样做。如果要使用其他分隔符打印结果,请使用
    join()
    。例如:
    返回result.sort().join('-')干得好!请你花一分钟检查一下密码好吗?有时我仍然难以完全理解代码的工作方式。很好!一个建议是:不要传递ID,