【问题标题】:jQuery: .attr to href if DIV contains('text')?jQuery:如果DIV包含('text'),.attr到href?
【发布时间】:2015-12-03 16:29:18
【问题描述】:

(Twitter) 我正在尝试,但不确定如何在 links/A/href 开头使用 .attr,如果所选元素包含某些单词:

 $(".tweet:contains('government','Anonymous')").each(function(){
   $old_url = $(this).attr('href');
   $new_url = 'http://blankrefer.com/?'+$old_url;
   $(this).attr('href',$new_url);
  });

这可行,但没有文本检测:

$("A").each(function(){
   $old_url = $(this).attr('href');
   $new_url = 'http://blankrefer.com/?'+$old_url;
   $(this).attr('href',$new_url);
});

【问题讨论】:

  • 你能解释一下你的问题是什么吗?
  • jfyi: $("a").attr("href", function(idx, oldValue) { return 'http://blankrefer.com/?' + oldValue; }); 和你的第二个例子一样:) .attr()
  • 并使用 Andreas 的示例,您可以在 return 函数中使用 if-contains 来返回原始或修改后的 url
  • 它仍然不适用于单词检测@andreas

标签: javascript jquery twitter contains attr


【解决方案1】:

您不能将多个搜索字符串传递给:contains,有关详细信息,请参阅this。您可以使用逗号分隔符将选择器与另一个搜索字符串重复,如下所示。

$(function(){
     $(".tweet:contains('government'),.tweet:contains('Anonymous')").each(function(){
        $old_url = $(this).attr('href');
        alert($old_url);
        $new_url = 'http://blankrefer.com/?'+$old_url;
        $(this).attr('href',$new_url);
     });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<a class="tweet" href="gov">government one</a>
<a class="tweet" href="ano">Anonymous one</a>
<a class="tweet" href="gov2">govern two</a>

【讨论】:

  • 这样的? $(function(){ $(".tweet:contains('Anonymous')").each(function(){ $("a").attr("href", function(idx, oldValue) { return 'blankrefer.com?' + oldValue; }); });
  • 点击上方的“运行代码 sn-p”按钮后,您将收到仅匹配链接的 href 的警报。为什么它不适用于您的情况?我是不是理解错了你的问题?
  • 检查浏览器上的控制台错误或在 jsfiddle 链接上重新创建问题并与我分享
猜你喜欢
  • 2011-09-26
  • 1970-01-01
  • 2021-04-14
  • 2018-08-14
  • 2012-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多