如何将Label内容传递给函数

时间:2012-07-11 15:18:15

标签: jquery asp.net jquery-ui jquery-plugins

我有一个jQuery函数,我用以下代码调用。该函数搜索“QAList”中“words:”区域中显示的单词,然后将这些单词加粗。这个代码工作正常,“Demo”和“or”这两个词变得粗体。

    $("[id$=QAList]").wrapInTag({
      words: ['Demo User', 'or'],
      tag: '<selected>'
    });

我现在正试图从标签或文本框中传递“单词:”列表,但由于某种原因我无法通过正确的信息,我不是百分百肯定看到它实际传递的内容。

这是我将代码更改为从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],它对数组中的一个值起作用,但对于所有数组项都不会单独使用。< / p>

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>'
    });

谢谢!

2 个答案:

答案 0 :(得分:2)

这样,你的单词var就等于["'Demo User', 'or'"](一个元素)。如果你拆分你的字符串,你得到你想要的东西:

// suposing your_text is right
words: your_text.split(",")

当然这是一个简化的解决方案。如果你想获得类似'word, 1', 'word 2'的东西,你需要一个更好的解析器来解决你的问题,但这就是它的方式。

答案 1 :(得分:1)

words参数应该是一个数组。字符串'Demo User', 'or'看起来像是包含这些值的数组的打印输出,但最终是字符串,而不是数组。

换句话说,你传递的字符串看起来有点像数组,而不是实际的数组。

假设您正在从元素中检索的字符串是'Demo User', 'or',您需要通过拆分分隔符(在您的情况下为逗号和空格)将其拆分为数组。您还需要删除各种令牌周围的'

$("[id$=QAList]").wrapInTag({
    words: $("[id$=lblSelectedQA]").val().replace(/'/g, '').split(, ?/),
    tag: '<selected>'
});