循环遍历字符串中的每个单词并转换为链接会返回未定义的第一个值



编辑我的标题如果它很臭,我很难为我的问题找到一个好的标题。

我基本上是在拿这样的字符串

See Good-By

并将每个单词转换成一个链接并放回一个字符串。结果看起来像

<a href"#">See</a> <a href="#">Good-by</a>

我的代码运行得很好,只是出于某种原因,第一个值总是以未定义的形式返回,但它可以很好地捕获字符串中的所有单词。因此,在这种情况下,应该有2个循环,因为只有2个单词,但它循环了3次,第一个没有定义。

HTML

<span class="definition">See Good-by</span>

查询

$('.definition').each( function(p) {
var c;
var result = $(this).text().split(' ');
$.each(result, function(i) {
if (result[i] != '') {
var link = ' <a href="/dictionary/word/' + result[i] + '/">' + result[i] + '</a>';
c += link;
}
})
$(this).html(c);
})

所以结果是

undefined See good-by.

See和Good by是链接,undefined只是文本。不知道发生了什么。

初始化c = '',这是代码中的问题。否则,c的值将为undefined。这就是你作为undefined得到的。已附加代码段。

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$(document).ready(function () {
$('.definition').each(function (p) {
var c = '';
var result = $(this).text().split(' ');
$.each(result, function (i) {
if (result[i] != '') {
var link = ' <a href="/dictionary/word/' + result[i] + '/">' + result[i] + '</a>';
c += link;
}
})
$(this).html(c);
});
});
</script>
</head>
<body>
<span class="definition">See Good-by</span>
</body>
</html>

相关内容

  • 没有找到相关文章

最新更新