我有两个具有完全相同数量的键的数组。我想遍历第一个数组,然后在<p>
标签中搜索任何匹配的值。然后,如果找到匹配,我想用第二个数组中的相应值替换该匹配值。
我现在有这个:
var text_original = ["original_word1", "original_word2", "original_word3"];
var text_replaced = ["replaced_word1","replaced_word2","replaced_word3"];
var z;
for (z = 0; z <= text_original.length; ++z) {
$("p").each(function(){
var text=jQuery(this).html();
$(this).html(text.replace(text_original,text_replaced));
});
}
这是一般性的想法,我对如何从多个数组值中隔离单个值感到困惑。在此先感谢您的帮助!
答案 0 :(得分:2)
indexOf
并检查找到的文本。text
而不是函数html
。
var text_original = ["original_word1", "original_word2", "original_word3"];
var text_replaced = ["replaced_word1", "replaced_word2", "replaced_word3"];
$('p').each(function() {
var text = $(this).text();
var index = text_original.indexOf(text);
if (index > -1) $(this).text(text.replace(text_original[index], text_replaced[index]));
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>original_word1</p>
<p>original_word2</p>
<p>Ele from SO</p>
&#13;
$.text()
?HTML
<p>
元素代表一段文字。段落通常在视觉媒体中表示为通过垂直空白空间和/或第一行缩进与相邻块分隔的文本块。段落是块级元素。
函数$.text()
将返回没有HTML标记的文本。
答案 1 :(得分:1)
echo
之前遗失了json_encode()
。json_encode()
不应包含在引号中。[z]
来访问数组元素。代码:
var text_original = <?php echo json_encode($text_original); ?>;
var text_replaced = <?php echo json_encode($text_replaced); ?>;
var z;
for (z = 0; z <= text_original.length; ++z) {
$("p").each(function(){
var text=jQuery(this).html();
$(this).html(text.replace(text_original[z],text_replaced[z]));
});
}