【问题标题】:How to get subset of string using Javascript/JQuery/JSON?如何使用 Javascript/JQuery/JSON 获取字符串的子集?
【发布时间】:2010-11-14 05:17:30
【问题描述】:

我想在 Javascript 中获取字符串的子集。目前,我只知道如何存储整个字符串:

我将此作为 JSON 变量,并带有对 foo 的回调:

foo({"results":[
"<div id=\"following\"><span><a href=\"http://twitter.com/barackobama\">Obama</a></span></div>"
]})

这是我的回调函数:

function foo(o){
  var entireDiv = o.results[0];
}

如何只存储“ ... " 标记为 Javascript 中的字符串?

【问题讨论】:

  • 为什么不只返回 html 片段而不是 json。要么以 json 格式返回数据,要么使用模板插件生成标记。不知道为什么你试图将标记变成 json 字符串
  • 它以 json 格式提供给我。我认为我无法控制输入。

标签: javascript jquery regex string json


【解决方案1】:

使用 jQuery,您可以解析一段 HTML 作为第二个参数。

所以,更新您的foo 函数:

$j = jQuery.noConflict();

function foo(o)
{
    var JustTheLink = $j( 'a' , o.results[0] ).parent().html();
}


更新:
处理多个链接时,您可以这样做:

function foo(o)
{
    $j('a',o.results[0]).each(handleSrc);
}

function handleSrc()
{
    console.log(this); // tag
    console.log($j(this).html()); // contents
}

【讨论】:

  • 为我工作。如果 html 中有多个链接,如何获取第二个链接、第三个链接等...?
  • 查看我的更新以获取多个链接 - 虽然这似乎不是一个很好的做事方式......但必须有一个更好的解决方案。 ://
  • 是的。因为我的输入是相对固定的,我确切地知道我有多少个链接,所以我想我应该使用 css 选择器指定链接。在我的情况下工作。谢谢!
【解决方案2】:

您可以使用正则表达式来查找锚标记:

function foo(o){
  var entireDiv = o.results[0];
  var link = /<a.+?\/a>/.exec(entireDiv)[0];
}

【讨论】:

  • Firebug 说:“无效的正则表达式标志 a”。你得到它为你工作了吗?
【解决方案3】:
var link = entireDiv.match(/<a[^>]*>.*<\/a>/);

【讨论】:

    猜你喜欢
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    • 2018-05-20
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    • 2020-02-29
    相关资源
    最近更新 更多