我需要在列(:)之前和之后分隔值,在列之前作为键,在列之后作为值
例:
如果我搜索产品,则应使用javascript将产品名称和产品代码作为密钥,并将产品15和1234作为值
var text1=document.documentElement.innerHTML;
var res = text1.match(/Product/g);
for(j=0;j<res.length;j++)
{
console.log(res[j]);
}
&#13;
<li>Product name: Product 15</li>
<li>product code: 1200</li>
<span> product category : bag </span>
&#13;
答案 0 :(得分:0)
执行document.documentElement.innerHTML;
时,您正在从DOM中检索HTML字符串并进行搜索。如果执行此操作,则很难返回父节点,因为您没有节点关系。您应该查找搜索所需的必要元素并将其循环搜索。
此外,text1.match
将在文本中搜索模式并为您提供匹配的单词。因此,您只获得Product
而不是完整的句子。相反,使用regex.test
检查字符串是否具有必要的单词/ pattearn。此外,在单个文本上运行它而不是在完整的HTML字符串中,因为您需要父节点。
var elements = document.querySelectorAll("li,span");
var regex = /product/i
for (var j = 0; j < elements.length; j++) {
var text = elements[j].textContent;
if (regex.test(text)) {
console.log(text);
}
}
&#13;
<li>Product name: Product 15</li>
<li>product code: 1200</li>
<span> product category : bag </span>
&#13;
答案 1 :(得分:0)
var arr=[];
$('li').each(function(item){var item_text = $(item).text().split(':'); arr.push({[item_text[0]]:item_text[1]})});
// show results
console.log(arr);
JS
var options = document.getElementsByTagName('li');
var arr=[];
Array.from(options).forEach(function(item){var item_text = item.innerText.split(':'); arr.push({[item_text[0]]:item_text[1]})})
// show results
console.log(arr);