【问题标题】:Search variable for tags搜索变量的标签
【发布时间】:2014-11-02 16:07:44
【问题描述】:

我有一些通过 ajax 调用获取的 html。我将 html 字符串分配给一个变量。我想要做的只是搜索这个变量,而不是整个文档,寻找前置标签并显示文本。这样做的正确方法是什么?

$(document).ready(function () {
    var rawtext = htmlstringwithpretags
    $(rawtext).find('pre').each(function () {
        alert($(this).text());
    });
});

【问题讨论】:

  • 你能给我们举个例子吗?
  • 使用substring()indexOf()
  • 您的实施遇到了什么问题?
  • @code-jaff 问题是我想对不在标记上的变量执行搜索。只有当我在正文中的 div 中有文本时,它才有效。我无法将 html 直接转储到正文中。 MS 中的一些安全措施阻止我这样做。
  • @Jotter 查看我的答案

标签: jquery loops variables tags selector


【解决方案1】:

试试这个

htmlstring 有一个pre 标签

var rawtext = "hello wold<pre>pre text content</pre>";
alert($("<div>"+rawtext+"</div>").find('pre').text());

htmlstring 有很多pre 标签,你想迭代,那就用这个

$("<div>"+rawtext+"</div>").find('pre').each(function() {
       alert($(this).text());

  });

【讨论】:

  • 这是为变量创建一个新的div?我可以在这里使用 .each 进行迭代吗?
  • 你的意思是,那个 htmlstring 有多个 pre 标签,你想获取所有的值?
【解决方案2】:

在这种情况下,您可能需要查看$.parseHTML()

var rawtext = "hello wold<pre>pre text content</pre>";
var html = $.parseHTML(rawtext);

$.each(html, function(i, el){
    if( 'PRE' == el.nodeName ){ alert(el) }
});

【讨论】:

  • 就是这样。我将警报更改为: alert($(el).text())};因为我需要文字。
【解决方案3】:

试试这个:

$("<div>"+rawtext+"</div>").find("pre").each(function(){
    alert($(this).text());
});

【讨论】:

    猜你喜欢
    • 2011-06-25
    • 1970-01-01
    • 2012-09-14
    • 1970-01-01
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    • 1970-01-01
    相关资源
    最近更新 更多