【发布时间】:2021-10-23 22:20:43
【问题描述】:
我正在为自己编写一个类似于 bot 的 chrome 扩展程序,其中一个功能是为特定 html 元素解析一个随机站点,该元素包含用户以自定义顺序提供的所有关键字和.click() 它。这两个我都做不到。
我尝试了一下 jQuery 的 :contains 选择器,发现像我在下面提供的命令只适用于预定义数量的关键字。
至于.click() 的问题。出于某种原因,它在我的情况下不起作用。这对我来说看起来很奇怪,因为同时 '.remove()' 工作得很好。
这是我要实现的目标的“.js”文件:
$(document).ready(function() {
console.log('ready');
findItem();
});
function findItem() {
chrome.storage.local.get("settings", function (data) {
//var newWindow = window.open('SOME SITE URL', 'single');
if (data.settings.keyWords) {
//code piece that makes an array out of keywords string
//stored in chrome storage and removes empty elements
let pkString = data.settings.keyWords;
const pkArr = pkString.split(", ");
Object.keys(pkArr).forEach(pk => {
if (pkArr[pk] == "") {
pkArr.pop();
console.log('popped');
} else {
console.log(`'${pkArr[pk]}'`);
}
});
if (pkArr) {
//i basically need something like that but for random amount of keywords
$(`div:contains("${pkArr[0]}"):contains("${pkArr[1]}"):contains("${pkArr[2]}"):contains("${pkArr[3]}"):contains( ... )`).click();
}
}
};
【问题讨论】:
标签: javascript jquery html-parsing