3 回答

TA贡献1785条经验 获得超8个赞
如果您修复 HTML 以便它可以被解析为 jQuery 对象,我在下面的示例中通过添加缺少的前导标记来完成,那么<label>您可以find()定位i元素,然后map()构建其文本数组. 尝试这个:
let str = '<label>Edges</label><div><div class="edges_and_corners_container"><div class="color-cont"><img class="color-img" src="img/tiles/light.png" style="background-color: rgb(226, 84, 153);"></div><div class="report_color_container"><i>Carnival Pink: </i>7</div></div><div class="edges_and_corners_container"><div class="color-cont"><img class="color-img" src="img/tiles/light.png" style="background-color: rgb(103, 66, 48);"></div><div class="report_color_container"><i>Chocolate Brown: </i>5</div></div></div></div><div><hr><label>';
var colours = $(str).find('i').map((i, el) => el.textContent.trim()).get();
console.log(colours);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

TA贡献1829条经验 获得超9个赞
我建议使用正则表达式。
例如 :
const str = 'Youre string'
const reg = /<i>[\w\s]+/g // find i tag and get all letters and spaces after that
const strings = str.match(reg).map(v => v.slice(3)) // after that remove i tag from resulting array of strings
将输出 => ["Carnival Pink", "Chocolate Brown"]

TA贡献1829条经验 获得超13个赞
你可以用正则表达式来做到这一点
const STR = 'Edges</label><div><div class="edges_and_corners_container"><div class="color-cont"><img class="color-img" src="img/tiles/light.png" style="background-color: rgb(226, 84, 153);"></div><div class="report_color_container"><i>Carnival Pink: </i>7</div></div><div class="edges_and_corners_container"><div class="color-cont"><img class="color-img" src="img/tiles/light.png" style="background-color: rgb(103, 66, 48);"></div><div class="report_color_container"><i>Chocolate Brown: </i>5</div></div></div></div><div><hr><label>'
const res = STR.match(/(?<=<i>)[^:]*/g)
console.log(res)
添加回答
举报