按标识为chrome扩展选择span元素

时间:2017-05-18 21:25:39

标签: javascript jquery html google-chrome-extension

我目前正在尝试选择以MTG_INSTR开头的所有跨度,后跟一个数字(MTG_INSTR1,MTG_INSTR2等)。我已尝试过jquery并编辑文本以使用

进行测试
var elements = document.querySelectorAll("[id^=MTG_INSTR$]");
for (var i = 0; i < elements.length; i++)
{
    var text = elements[i].innerHTML;
    alert(text);
}

但是没有发生任何事情都没有奏效。我也尝试过使用querySelectorAll

<div id="win0divMTG_INSTR$2">
   <span class="PSLONGEDITBOX" id="MTG_INSTR$2">EXAMPLE NAME</span>
</div>

也没有用。我正在尝试为我们学校的课程搜索页面执行此操作,并收集所有教师的名称以进行Chrome扩展。这是我第一次尝试使用chrome扩展,如果重要的话,我会在content_script.js文件中使用这个部分,并且相应的span / parent div的HTML示例是

"background": {
"scripts": [
  "jquery.js",
  "background.js"]
 "persistent": false
},

"content_scripts": [
{
"matches":[
"css": ["content_script.css"],
"js": ["jquery.js", "content_script.js"]
}
 ]

此外,这是我的manifest.json的一部分,其中包含我下载的jquery.js,并放在与其他文件相同的文件夹中。

public interface ITestData{}
public class BarcodelData : ITestData
{
    public int Id { get; set; }
}

2 个答案:

答案 0 :(得分:0)

可能在您的扩展程序中未正确配置jquery。您也可以尝试使用原生document.getElementById。

答案 1 :(得分:0)

$ 不是HTML中 id 的有效属性字符。删除$,符号,它们将开始工作。

我已经测试过了。

<div id="win0divMTG_INSTR$2">
    <span class="PSLONGEDITBOX" id="MTG_INSTR2">EXAMPLE NAME</span>
    <span class="PSLONGEDITBOX" id="MTG_INSTR3">EXAMPLE NAME</span>
</div>
<script>
    var elements = document.querySelectorAll("[id^=MTG_INSTR]");
    console.log(elements);
    /*for (var i = 0; i < elements.length; i++) {
        var text = elements[i].innerHTML;
        alert(text);
    }*/
</script>

输出

[span#MTG_INSTR2.PSLONGEDITBOX, span#MTG_INSTR3.PSLONGEDITBOX]

希望这会有所帮助......