jquery如何获取取元素序号,例如一个有N行的table,点击其中的一行,获取到它的行号。

jquery如何获取取元素序号,例如一个有N行的table,点击其中的一行,获取到它的行号。,第1张

可以用jQ的index()方法,举例:

<table id="table1">

<tr>

<td>第1行</td>

</tr>

<tr>

<td>第2行</td>

</tr>

<tr>

<td>第3行</td>

</tr>

<tr>

<td>第4行</td>

</tr>

</table>$('#table1')find('tr')click(function() {

var idx = $(this)index() + 1;  // 索引是从0开始的,故+1

consolelog('点击了第' + idx + '行');

});

我理解下你的意思

你是要把 T_letter_tbl 中所有元素的 letter标签和  和 hope_letter_tbl 中的元素比较,如果 发现重复 的 则删除 T_letter_tbl 中的 重复标签吗?

一般做法用 lua 做这种很容易,但是要注意方法,不是比较,那样遍历比较 效率太低。先把 需要比较的 table 的元素作为 索引 建立一个 hash

直接取元素 进行 标签判断,

下面是一个演示:tableprint 自定义的输出,可以删去,自己选择输出方式

 

function tableprint ( tbl, name )

    name = name or "table"

    local prompt = '  '

    local i = 1

    local printed = {}

    local function tostring2 ( var )

        if (type( var) == "string" ) then

               return '"' var '"'

        end

       

        return tostring(var )

    end

    local function itor ( t , i )

        printed[ tostring( t)] = true;

        for key , ele in pairs (t ) do

            if not (type( ele) == "table" ) then

                print( string format('%s[%s] = %s;' , stringrep( prompt, i ), tostring2 ( key ),tostring2 (ele )) )

            elseif printed [tostring( ele)] then

                print( string format('%s[%s] = %s;' , stringrep( prompt, i ), tostring2 ( key ),tostring2 (ele )) )

            else

                print( string format('%s[%s] = {' , stringrep( prompt, i ), tostring2 ( key )) )

                i = i + 1

                itor( ele, i)

                i = i - 1

                print( string format('%s};' , stringrep( prompt, i )) )

            end

        end

    end

 

    print( stringformat( "%s = {" , name ) )

    itor( tbl, i)

    print("};" )

end

-----------------------------------------------------

tbl_letter_HOPE = {

    [1] = "bbbbbb";

    [2] = "ffffff";

    [3] = "cccccc";

    [4] = "xxxxxx";

    [5] = "eeeeee";

};

tbl_letter_T = {

    [1] = {["letter"] = "Y"};

    [2] = {["letter"] = "M"};

    [3] = {["letter"] = "P"};

    [4] = {["letter"] = "K"};

    [5] = {["letter"] = "bbbbbb"};

    [6] = {["letter"] = "R"};

    [7] = {["letter"] = "Q"};

    [8] = {["letter"] = "xxxxxx"};

    [9] = {["letter"] = "L"};

    [10] = {["letter"] = "D"};

    [11] = {["letter"] = "B"};

    [12] = {["letter"] = "ffffff"};

    [13] = {["letter"] = "Z"};

    [14] = {["letter"] = "T"};

    [15] = {["letter"] = "["};

    [16] = {["letter"] = "cccccc"};

    [17] = {["letter"] = "E"};

    [18] = {["letter"] = "C"};

    [19] = {["letter"] = "W"};

    [20] = {["letter"] = "I"};

    [21] = {["letter"] = "F"};

    [22] = {["letter"] = "eeeeee"};

    [23] = {["letter"] = "O"};

    [24] = {["letter"] = "X"};

    [25] = {["letter"] = "U"};

    [26] = {["letter"] = "S"};

};

--- 根据 tbl_letter_HOPE 中的元素 去除 tbl_letter_T 中的元素

-- 

local function main ()

    local tbl_erase = {}

    for key, ele in pairs(tbl_letter_HOPE) do

       -- 不考虑 元素权重则 改为  = true

        tbl_erase[tostring(ele)] = (tbl_erase[tostring(ele)] or 0) + 1 

    end

    

    

    for key, ele in pairs(tbl_letter_T) do

        if tbl_erase[eleletter] then

            -- 移除 整行 [12] = {["letter"] = "ffffff"};

            tbl_letter_T[key] = nil

            

            -- 还是 一个标签 letter

            --tbl_letter_T[key]letter = nil

        end

    end

    tableprint(tbl_letter_T)

end

startTime = ostime()

main()

print( stringformat(">> This function cost: %s ms", tostring(ostime()-startTime) ) )

如果只想 获得去除给定元素后的 table

可以先 复制原 tbl_letter_T

注意:

不要用 浅复制 你之前 那个代码 可能 就是 希望做一个 tbl_letter_T 的副本

但是 使用 浅复制 相当于仅复制了指向table的句柄。

tbl_Interim = tbl_letter_T   -- 2个变量指向同一个 table表

要用

for key, ele in pairs(tbl_letter_T) do

 tbl_Interim [key] = ele

end

javascript中可以通过documentGetElementByID(你要获取的那个列的ID号,在上述代码中是<p>标记中的ID号)就可以获取你的这个元素,然后通过Innertext就可以获取里面的值了。

1首先,我们打开jquery并创建一个新的HTML文件。

2然后我们创建一个表单表单。

3如图所示,我们可以看到此时,一个元素下的所有输入元素都没有被选中。

4然后介绍jqueryjs。

5JQuery:fileselector选择“file”类型的输入元素并设置其背景颜色。

6此时,可以选择某个元素下的所有输入元素。

$(tbody)find('tr')eq(1)find('td')eq(2);

这条代码取的是第1个tr的第2个td

你可以用$(tbody)find('tr')size()取所有tr

然后在循环中取第二个td

因为tr的下标是从0开始的,所以实际取的则是第i-1个下标的元素。比如,你想取第二个tr,那么就是$("table tr:eq(1)"),想去第58个tr则是$("table tr:eq(57)")

就可以了

以上就是关于jquery如何获取取元素序号,例如一个有N行的table,点击其中的一行,获取到它的行号。全部的内容,包括:jquery如何获取取元素序号,例如一个有N行的table,点击其中的一行,获取到它的行号。、LUA 关于取出两个table中不同元素的算法。、在javascript怎么得到table单元格中的值或内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9451178.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存