循环遍历页面中的对象,如果页面包含键,则追加值



我有一个充满链接的页面。我想在底部放一个小jquery,用于查找特定的URL,或者对于每个URL,如果它在内容中找到该URL,或者如果当前页面的规范链接(包含在元中)匹配,则在页面底部附加一个小标签。到目前为止,我有这个:

<script type="text/javascript">
var obj = {
    "apple.php":"apple_pixel_url",
    "banana.php":"banana_pixel_url",
    "carrot.php":"carrot_pixel_url"
};
$.each( obj, function( key, value ) {
    $( "html:contains(key)" ).append('<img src="'+value+'">');
});
</script>

这总是附加所有三个值,所以我显然做错了什么。我想理想情况下,我只会查看"a"链接以及任何匹配的标签

<link rel="canonical" href="CANONICAL_URL" />

最好的方法是什么?

您还可以使用以下语法追加到各个链接:

$("a[href$='"+key+"']").append('<img src="'+value+'">');

您正在传递一个静态字符串作为选择器,其中 'key' 是一个变量。

   $( "html:contains("+key+")" ).append('<img src="'+value+'">');

它总是附加三个链接,因为它在你的javascript中查找值!仅在<a><link>元素的href属性中选中。

var obj = {
    "apple.php":"apple_pixel_url",
    "banana.php":"banana_pixel_url",
    "carrot.php":"carrot_pixel_url"
};
function load(){
  $.each( obj, function( key, value ) {
    if($("a[href='"+key+"'],link[href='"+key+"']").length > 0){
      $("body").append('<img src="'+value+'">');
    }
  });
}

<body onload="load()">
   <a href="apple.php">Apple</a>
   <link href="carrot.php" />
</body>

这里有一个小提琴:https://jsfiddle.net/wjdo23kr/1/

最新更新