将javascript变量作为id传递到jquery函数中
我需要在下面的代码中传递将javascript变量作为id传递到jquery函数中,javascript,jquery,Javascript,Jquery,我需要在下面的代码中传递new_sub_id变量,但它似乎不起作用: var original_sub_id = $j(element).attr('id'); e.g sub:777 var new_sub_id = original_sub_id.split(":"); new_sub_id = new_sub_id.join("\\\\:"); e.g sub\\:777 欢迎提出任何建议 $j("#"+new_sub_id + "ins:eq(1)").attr("class",
new_sub_id
变量,但它似乎不起作用:
var original_sub_id = $j(element).attr('id'); e.g sub:777
var new_sub_id = original_sub_id.split(":");
new_sub_id = new_sub_id.join("\\\\:"); e.g sub\\:777
欢迎提出任何建议
$j("#"+new_sub_id + "ins:eq(1)").attr("class","jstree-icon2"); // set class to display new icon
不要忘记ins:eq(1)
还要确保此元素存在:
$j(“#”+新的子id+“ins:eq(1)”)
我感觉这是因为您的id中的:
:在jquery中,选择器倾向于使用伪选择器,如
:checked、:selected、:focus
,因为您已经有了对li
的引用,所以可以将其作为选择器的上下文传递
$j(“ins:eq(1)”,element).attr(“class”,“jstree-icon2”)
你能澄清你所说的“我需要更改特定标签的类别”是什么意思吗?我需要更改特定新子标签
和“ins:eq(1)”之间留出一个空格,它仍然不起作用,即使我把空间放在ins之前。如果我把:$j(“#sub\\\:7428 ins:eq(1)”).attr(“class”,“jstree-icon2”);它工作正常。这就是为什么他们要用\\这些id从DB中逃逸的原因?你需要用它们发回吗?您可能会做一些奇特的字符串替换,并将:替换为a-,然后在需要将其发送到服务器时将其交换回。在看不到更多代码的情况下,很难确切地说如何修复它。是的,这些ID来自数据库,我需要将它们发回。我用其他字符替换冒号并将其存储在var中,然后在将其保存到数据库时将其交换回。谢谢你的建议:)
$j("#"+new_sub_id + "ins:eq(1)").attr("class","jstree-icon2"); // set class to display new icon
$j("#"+new_sub_id + " ins:eq(1)").attr("class","jstree-icon2"); // set class to display new icon