2

我是 Jquery 的新手,在识别 HTML 字符串中的特定标签时遇到问题。我的 HTML 字符串是:

<span id="name">myname</span>  
<span id="familyname">mysurname</span>     
<span id="telnum">mytelnum</span>  
<span id="postcode">myPostCode</span> 
<span id="email">my@email.com</span>

我想要的是将每个跨度内部文本放在单独的变量中。

预期结果是:

var a = 'myname';
var b = 'mysurname';
var c = 'telnum';
var d = 'myPostCode';
var e = 'my@email.com';

但在我的代码中,听起来 find 功能不起作用!这是我的代码:

var myHtmlCode = '<span id="name"> myname</span> <span id="familyname">mysurname</span> <span id="telnum"> mytelnum</span><span id="postcode"> myPostCode</span><span id="email">my@email.com</span>';

var $temp = $(myHtmlCode).find('span').contents().each(function() {
    alert(this.val());  
});

任何帮助表示赞赏....

4

2 回答 2

3

不要调用contents,这里没用,因为你可以从元素中调用text函数。span

如果您希望能够探索已解析的字符串,则必须将跨度嵌入到一个顶级元素中。

您可以将文本放在这样的对象中:

var texts = {};
$('<div>'+myHtmlCode+'</div>').find('span')
  .each(function(){ texts[this.id] = $(this).text() });

然后,您可以阅读文本,例如texts.name

演示(打开控制台查看texts对象)。

当然,您也可以将其用作全局变量,即使用window.name而不是texts.name,但确实建议避免使全局名称空间混乱。

于 2013-03-07T21:37:42.453 回答
0

我使用了以下代码:

var $temp = $(myHtmlCode).each(function () {

            if (this.id == "name") {

            alert(this.innerHTML);
            } 
        });
于 2013-03-07T22:22:49.947 回答