【发布时间】:2018-05-09 12:03:16
【问题描述】:
我有两个相互替代的 HTML 元素,我正在尝试编写一个 JS 函数,如果另一个存在则删除一个(它们起源于 <sic> 和 <corr> 中 <choice> 下的单词TEI 文件)。在我的转换中,它们都被分配了一个带有唯一前缀的代码(不是 @id: @id 是随机生成的,并且必须保留用于其他目的):
<a id="abc" choicePOS="sic0">Element1</a>
<a id="xyz" choicePOS="corr0">Element2</a>
在“属于”Element1 的 JS 函数中,我想选择 Element2 以将其删除。这是我尝试过的(el 是 element1):
var choicePOS = el.getAttribute("choicePOS").slice(3); // produces 0
var corrID = "corr" + choicePOS; // produces corr0
var corr = document.querySelectorAll("a[choicePOS=corrID]");
这失败了,大概是因为最后一行中的corrID 变量在引号中并且被视为字符串。我已经阅读了有关 CSS 选择器的各种教程,但找不到任何关于如何将它们与可变属性值一起使用的指导。这可能吗?如果是这样,怎么做?如果没有,还有其他选择吗?
编辑:关于如何在 JS 中将字符串与变量连接起来的许多其他问题已被建议作为此问题的重复项。为了澄清,我特别询问querySelectorAll,因为我找不到任何与变量一起使用的示例。如果答案是它的选择器将被视为任何其他 JS 字符串(即可以连接变量),那么这是完全令人满意的。
【问题讨论】:
-
使用常规字符串连接...
"a[choicePOS=" + corrID +"]" -
querySelectorAll无关紧要。选择器 is 只是任何其他 JS 字符串。它没有什么特别之处。这就是为什么我给了所有这些副本。你真的试过了吗? -
你好。谢谢,@Teemu。那行得通:-) 感谢@ Crazy Train。现在我理解了选择器,重复项是有意义的。
标签: javascript html css