【问题标题】:Having difficulties to find the inner text of a specific Span from HTML string难以从 HTML 字符串中找到特定 Span 的内部文本
【发布时间】:2013-02-23 07:14:39
【问题描述】:

我是 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());  
});

感谢任何帮助....

【问题讨论】:

    标签: jquery find each html


    【解决方案1】:

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

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

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

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

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

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

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

    【讨论】:

    • Dystory,感谢您的帮助。
    • 样本的结果是 [object Object]。你能找到问题的根源吗?
    • 你试过alert吗?别。 Use the console.
    • 这个警报很好用:alert(this.innerHTML) 但我将它用于另一个 html 代码,它不适用于这个新代码,这是新的 html 代码:
    • 098209 14/12/2012 10/12/2012 测试 10/12/2012 14/12/2012 testType 跨度>
    【解决方案2】:

    我使用了以下代码:

    var $temp = $(myHtmlCode).each(function () {
    
                if (this.id == "name") {
    
                alert(this.innerHTML);
                } 
            });
    

    【讨论】:

      猜你喜欢
      • 2023-02-04
      • 2012-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-01
      • 1970-01-01
      • 2015-06-27
      相关资源
      最近更新 更多