如果我使用以下内容选择某个节点
var Link = document.querySelector('table .ctrlcLink');
我使用类ctrlLink获取列的第一列值,这正是我所期望的。
但是,由于我将onclick事件设置为同一个表中的另一列,因此我希望得到与我单击的元素位于同一行的.ctrlLink列的值。 所以我试过这样的事情:
var Link = document.querySelector($(this).closest('tr').children('td.ctrlcLink'));
但后来我
“无法在'Document'上执行'querySelector':'[object Object]'是 不是有效的选择器。“
我应该使用什么选择器?
编辑: 也许我应该补充说我需要它以便我可以在之后使用以下内容:
var range = document.createRange();
range.selectNode(Link);
window.getSelection().addRange(range);
var successful = document.execCommand('copy');
EDIT2: 按照建议,我为此创建了一个codepen页面(谢谢!): http://codepen.io/whatwhat/pen/JXJjOp 我想要得到的是,当我单击表格中的图像时,我在其旁边的单元格中的同一行上获取文本并将其放入我的ctrl-c中。 但是,我无法获得单击图像的确切rownumber。 这部分不起作用:
var rowIndex = $(this).index();
什么会起作用,我怎么能得到rownumber。? 然后我会连接它改变
var Link = document.querySelector('#docReport tr:nth-child(1) .ctrlcLink');
到
var Link = document.querySelector('#docReport tr:nth-child('+rowIndex+') .ctrlcLink');
或者我可以用另一种方式解决这个问题吗?
EDIT3: 我最终得到了我需要的东西: http://codepen.io/whatwhat/pen/GZEgKK
答案 0 :(得分:1)
您根本不需要querySelector
,只需使用
var Link=$(this).closest('tr').children('td.ctrlcLink');
答案 1 :(得分:0)
你应该使用Jquery Event,而不是' onclick'。
http://codepen.io/nigayo/pen/oxwYwz?editors=1010
$("#docReport img.smiley-img").on("click", function(){
var Link = $(this).parent().prev()[0];
var range = document.createRange();
//blah...blah..
});