【问题标题】:Why is this line of Jquery selectiong ALL div's with the class=rule-name?为什么这行 Jquery selectiong ALL div 的 class=rule-name?
【发布时间】:2017-05-21 18:56:28
【问题描述】:

我是一个 JQuery 新手,并试图开始缓慢。我已将以下代码行放入 Tampermonkey 脚本并针对所需页面运行它。

$('<span id="matrixVarTableInit">Default Rule Tests</span>').insertAfter( "div:contains('Default Rule').rule-name" );

我希望这会在包含文本“默认规则”并具有类“规则名称”的 div 之后插入我提供的 HTML(跨度)。

但是,这是在每个带有 class='rule-name' 的 div 之后插入 HTML sn-p(实际上忽略了标签中是否包含文本“Default Rule”)。

【问题讨论】:

  • 这怎么跑题了???
  • “这怎么跑题了???”因为你没有重现问题中描述的问题
  • 需要更多信息与跑题不同。当我让孩子上床睡觉时,我会“重现问题”。
  • "off-topic because... 寻求调试帮助的问题("为什么这段代码不起作用?")必须包含所需的行为、特定的问题或错误,以及在问题本身中重现它所需的最短代码。没有明确的问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example。”
  • 看在上帝的份上,我同时与两个小孩打交道。有机会我会告诉你你的信息的。在我关闭之前请不要关闭它。

标签: javascript jquery html css


【解决方案1】:

尝试交换 :contains().className 选择器的位置

$('<span id="matrixVarTableInit">Default Rule Tests</span>')
.insertAfter("div.rule-name:contains('Default Rule')");

【讨论】:

  • 现在正在测试,但页面目前不合作。你能解释一下为什么顺序很重要吗?是否需要考虑一些操作顺序?
  • 之前没有尝试将字符串 .className 或其他选择器链接到 jQuery :contains() 选择器。不确定是否需要该功能。您可以尝试询问有关链接到:contains() 的选择器的预期功能的问题,该选择器在传递给github.com/jquery/jquery/issues 的jQuery 方法的参数内
  • 这似乎不起作用。每个以“规则名称”为类的 div 都插入了跨度。
  • 可以创建一个stacksn-ps或者jsfiddle.net/psx48rn6/1来演示吗?见stackoverflow.com/help/mcve。另请注意 1) document 中元素的 id 应该是唯一的; 2)您将一个元素附加到document,其中还包含文本"Default Rule"
  • 显然选择器可以链接到:contains() jsfiddle.net/psx48rn6/2。这不是问题。虽然可能是之前评论中提到的 1)或 2)
猜你喜欢
  • 1970-01-01
  • 2015-09-06
  • 2017-05-20
  • 1970-01-01
  • 2014-02-09
  • 2014-03-12
  • 2014-01-28
  • 2011-05-23
  • 2021-11-22
相关资源
最近更新 更多