可以用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) dotbl_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单元格中的值或内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)