我有一个使用以下代码调用的 jQuery 函数。该函数搜索“QAList”中“words:”区域中显示的单词,然后将这些单词加粗。这段代码可以正常工作,并且“Demo”和“or”这两个词都加粗了。
$("[id$=QAList]").wrapInTag({
words: ['Demo User', 'or'],
tag: '<selected>'
});
我现在正试图从标签或文本框中传递“单词:”列表,但由于某种原因,我无法让它传递正确的信息,而且我不能 100% 确定它实际传递的是什么。
这就是我更改代码以从 lblSelectedQA 标签中提取的方式:
$("[id$=QAList]").wrapInTag({
words: [$("[id$=lblSelectedQA]").html()],
tag: '<selected>'
});
我什至从文本框中尝试过,以防标签由于某种原因无法正常工作:
$("[id$=QAList]").wrapInTag({
words: [$("[id$=lblSelectedQA]").val()],
tag: '<selected>'
});
如果我将它们放在警报中,我会从标签和文本框中得到我需要的东西,它们会返回:
'演示用户','或'
既然我试图从其他地方传递值,那么“单词:”之后的语法是否不正确?
谢谢!
**根据以下 iurisilvio 的回答进行编辑
作为对您的回答的回应,我在填充'Demo User', 'or'
文本的内容中对代码进行了一些更改,以摆脱单引号和多余的空格。它现在看起来像这样:Demo User,or
并且适用于单一结果。
然后我尝试添加 .split(",") 如果我添加索引 [0] 或 [1],它适用于数组中的一个值,但不会独立用于所有数组项。
Utkanos 显示的内容基本相同,只是添加了一种方法来消除我不再需要的空格和单引号。
这是我现在的代码,它适用于单个结果:
$("[id$=QAList]").wrapInTag({
words: [$("[id$=lblSelectedQA]").html().split(",")],
tag: '<selected>'
});
但是,当它返回多个结果时,除非我添加索引,否则它将不起作用,但只会对我硬编码的索引起作用......不是一个选项,因为我不知道这个数组中有多少。
$("[id$=QAList]").wrapInTag({
words: [$("[id$=lblSelectedQA]").html().split(",")[0]],
tag: '<selected>'
});
或者
$("[id$=QAList]").wrapInTag({
words: [$("[id$=lblSelectedQA]").html().split(",")[1]],
tag: '<selected>'
});
有没有办法让它获取所有数组项而不必遍历它们?
谢谢!
**编辑解决方案:
我需要把刚刚添加的括号去掉。我想通了,然后回来了,Utkanos 刚刚发布了同样的东西 :)
工作代码:
$("[id$=QAList]").wrapInTag({
words: $("[id$=lblSelectedQA]").html().split(","),
tag: '<selected>'
});
谢谢!!