【问题标题】:How to use jquery in a string? [closed]如何在字符串中使用jquery? [关闭]
【发布时间】:2013-05-08 13:42:54
【问题描述】:

使用jquery,如何通过一串html代码进行搜索,例如:

<script type="text/javascript">
    alert($('#t','<span id="t">d</span>').html());
</script>

我希望在警报中得到d,但我得到了未定义...

有人知道怎么做吗?

其实我是用ajax请求来获取页面的html字符串。如果我然后尝试将字符串粘贴到某个标签中,那么当前页面就会变得一团糟。所以我想搜索给定的字符串。

【问题讨论】:

  • 你有这个元素。所以,这应该工作alert($('&lt;span id="t"&gt;d&lt;/span&gt;').html());。但我不确定这是否好。
  • 您的测试用例如此专业以至于荒谬。你想解决什么真正的问题?
  • 这行得通,没有意义,所以我不会将其作为答案发布alert($('&lt;span id="t"&gt;d&lt;/span&gt;').html());
  • @MarkSchultheiss 确实如此。没有意义。
  • 因此我对这个问题投了反对票并承认这样做。

标签: javascript jquery html string


【解决方案1】:

context 参数是 jQuery 将搜索的上下文 within。 IE。它将查看该上下文的子元素,而不是上下文本身。这有效:

alert($('#t','<span><span id="t">d</span></span>').html());

我不太确定你想在那里做什么。您已经拥有该元素,无需搜索它。这个例子可能永远不会应用于任何现实世界的问题。

【讨论】:

  • 我在下面的帖子中解释了我为什么这样做。
  • 是的,它必须被包裹起来,否则 OP 必须澄清。 +1 为我认为一个非常糟糕的问题的包装。
【解决方案2】:

如果您正在使用(或可以使用,似乎是这样).load() 将内容提取到例如元素 #target

$( '#target' ).load( 'myfile.html #t' );

这将仅获取 myfile.html 中的元素 #t

如果由于某种原因您不能使用.load(),作为最后的手段,您可以从响应中创建 jQuery 对象并使用它来搜索内容:

$.ajax( 'myfile.html' ).done( function( data ) {
    $( data ).find( '#t' ).appendTo( '#target' );
});

如果#t 是返回数据中的顶级元素,则使用.filter() 而不是.find()

【讨论】:

    猜你喜欢
    • 2017-06-26
    • 1970-01-01
    • 1970-01-01
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-28
    相关资源
    最近更新 更多