在jquery中爆炸字符串

时间:2012-12-24 19:33:18

标签: javascript jquery

我通过ajax得到以下结果。

row=Shimla|1|http://vinspro.org/travel/ind/

我想要http://vinspro.org/travel/ind/。我使用了find和split函数,但它不起作用。请让我知道我怎么能得到它?

var result=$(row).split('|');
    alert(result);

chrome显示以下错误

Uncaught Error: Syntax error, unrecognized expression: Shimla|1|http://vinspro.org/travel/ind/ 

6 个答案:

答案 0 :(得分:91)

split method将创建一个数组。所以你需要访问案例中的第三个元素..

(arrays are 0-indexed)您需要访问result[2]才能获取网址

var result = $(row).text().split('|');
alert( result[2] );

您没有向我们提供足够的信息来了解row的确切含义。因此,根据您获取变量row的方式,您可能需要执行以下操作之一。

  • 如果row是一个字符串,那么row.split('|');
  • 如果是DOM元素,则$(row).text().split('|');
  • 如果是input元素,则$(row).val().split('|');

答案 1 :(得分:5)

Split创建一个数组。您可以使用索引访问各个值。

var result=$(row).val().split('|')[2]
alert(result);

var result=$(row).val().split('|');
alert(result[2]);

如果是输入元素,那么您需要使用$(row).val()来获取值..

否则您需要使用$(row).text()$(row).html()

答案 2 :(得分:4)

什么是行?

其中任何一个都可能是正确的。

1)我假设您在javascript变量'row'中捕获了ajax响应。如果是这种情况,这将成立。

var result=row.split('|');
    alert(result[2]);

,否则

2)在$(row)jQuery对象的地方使用此项。

var result=$(row).val().split('|');
    alert(result[2]);

[如其他答案所述,您可能需要使用$(row).val()$(row).text()$(row).html()等,具体取决于$(行)。[/ p>

答案 3 :(得分:4)

split函数用您提供的分隔符分隔文本的每个部分,并提供“|”。因此结果将是包含“Shimla”,“1”和“http://vinspro.org/travel/ind/”的数组。您可以操纵它来获得第三个,“http://vinspro.org/travel/ind/”,这是一个例子:

var str="Shimla|1|http://vinspro.org/travel/ind/";
var n = str.split('|');
alert(n[2]); 

如其他答案中所述,此代码会有所不同,具体取决于它是否为字符串($(str).split('|');),文本框输入($(str).val()。split( '|');)或DOM元素($(str).text()。split('|');)。

您也可以使用纯JavaScript来获取9个字符之后的所有内容,即“http://vinspro.org/travel/ind/”。这是一个例子:

var str="Shimla|1|http://vinspro.org/travel/ind/";
var n=str.substr(9);
alert(n);

答案 4 :(得分:0)

尝试一下

var data = 'allow~5'; 
var result=data.split('~');

结果

alert(result[0]);

答案 5 :(得分:0)

如果您输入的 ID 如下

<input type='text'  id='kg_row1' >

然后你可以用jquery中的以下split函数来分解/拆分上面的内容

  var kg_id = $(this).attr("id");
  var getvalues =kg_id.split("_");
  var id = getvalues[1];