如果我使用以下命令来选择某个节点
var Link = document.querySelector('table .ctrlcLink');
我获得了类 ctrlLink 列的第一列值,这正是我所期望的。
但是,由于我将 onclick 事件设置为同一个表中的其他列,因此我想获取与单击的元素位于同一行的 .ctrlLink 列的值。 所以我尝试了这样的事情:
var Link = document.querySelector($(this).closest('tr').children('td.ctrlcLink'));
但后来我明白
"Failed to execute 'querySelector' on 'Document': '[object Object]' is not a valid selector."
那么我应该使用什么选择器?
编辑: 也许我应该补充说我需要它,以便之后可以使用以下内容:
var range = document.createRange();
range.selectNode(Link);
window.getSelection().addRange(range);
var successful = document.execCommand('copy');
编辑2: 按照建议,我为此创建了一个 codepen 页面(谢谢!)。: http://codepen.io/whatwhat/pen/JXJjOp 我想要得到的是,当我单击表中的图像时,我会获取它旁边的单元格中同一行的文本并将其放入我的 ctrl-c 中。 但是,我无法获取我单击的图像的确切行号。 这部分不起作用:
var rowIndex = $(this).index();
什么可行,我怎样才能获得行号。? 然后我会将其连接起来改变
var Link = document.querySelector('#docReport tr:nth-child(1) .ctrlcLink');
至
var Link = document.querySelector('#docReport tr:nth-child('+rowIndex+') .ctrlcLink');
或者我可以通过其他方式解决这个问题吗?
编辑3: 我最终得到了我需要的东西,如下所示: http://codepen.io/whatwhat/pen/GZEgKK
最佳答案
您应该使用 Jquery 事件,而不是“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..
});
关于javascript - 在 .querySelector 中引用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36182048/