无法更改跨度内容

时间:2011-12-09 03:24:41

标签: javascript jquery regex

我有这个范围:

<span id="inicial"></span>

点击按钮内的这个javascript:

    var pat = /\/\S+\//i;
    context = '';
    context = $('#cmd').attr('value');
    context= context.match(pat);
alert(context); //this gives correctly the string i need    
if (context.length){
    $('#inicial').text(context); //but it fails to change the text inside the span
    }

可能是什么问题?

另外我注意到它会影响整个点击功能,它只是停止工作。可能是什么原因?

2 个答案:

答案 0 :(得分:4)

问题是.match()返回数组,而不是字符串。但.text(parm)要求parm字符串

所以在.match()之后,您应该执行以下操作:

context = context[0];

或使用其他一些方法将数组中的至少第一个元素转换为字符串,如果不是完整的数组。

以下是.match()https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/match

的参考

.text(parm)的参考:http://api.jquery.com/text/

答案 1 :(得分:0)

尝试 - 根据@Jonathan M编辑  答案

$('#inicial').html(context[0]);