2013-04-22 82 views
0

这是我做的从HTML USNG取出文本的Jquery:如何用JavaScript代替链接文本?

$(".text").each(function(){ 

     var texts = items[textCount]['data']['title']; 
     $(this).text(texts); 
     textCount = textCount + 1; 
     }); 

我的问题,如果我想的文本是一个链接,那么它不显示为链接,但还增加了一个字符串到文本变量。我如何显示链接?如何将它作为href添加到文本中?

输出应该是这样的:

文字+网址

,而不是文字被链接的网址:"<a href=\""+link+"\">"+texts+"</a>"

回答

1

使用.attr()功能是这样的。

$(this).attr("href", "your link"); 

但是,这只会工作,如果你有一个锚标记,如果不是你可以动态创建一个锚标记。

$(this).html("<a href=\""+link+"\">"+texts+"</a>"); 
+0

这将创建一个文本链接。我想要这样的东西:文本+链接,而不是文本的链接。 – Hick 2013-04-22 01:59:05

+0

用所需的HTML输出更新您的问题。 – Starx 2013-04-22 02:01:00

+0

已经更新了一下。不知道这是否正是你想要的。 – Hick 2013-04-22 02:05:35

1

你可以用类=文本的每个元素像这样的链接,假设你有某种元素,你会用一个超链接来包装。我不是100%确定这是你正在寻找的。

$('.text').wrap('<a href="http://yourlinkhere.com"></a>'); 
1

你可以做。注意: - 当你直接处理对象属性时,这比attr()更有效。

this.href="yoururl" 

您不必经历在attr期间被调用的followng jquery代码,以便只设置href属性。

jQuery的ATTR功能

attr: function(elem, name, value, pass) { 
     var nType = elem.nodeType; 

     // don't get/set attributes on text, comment and attribute nodes 
     if (!elem || nType === 3 || nType === 8 || nType === 2) { 
      return undefined; 
     } 

     if (pass && name in jQuery.attrFn) { 
      return jQuery(elem)[ name ](value); 
     } 

     // Fallback to prop when attributes are not supported 
     if (!("getAttribute" in elem)) { 
      return jQuery.prop(elem, name, value); 
     } 

     var ret, hooks, 
      notxml = nType !== 1 || !jQuery.isXMLDoc(elem); 

     // Normalize the name if needed 
     if (notxml) { 
      name = jQuery.attrFix[ name ] || name; 

      hooks = jQuery.attrHooks[ name ]; 

      if (!hooks) { 
       // Use boolHook for boolean attributes 
       if (rboolean.test(name)) { 
        hooks = boolHook; 

       // Use nodeHook if available(IE6/7) 
       } else if (nodeHook) { 
        hooks = nodeHook; 
       } 
      } 
     } 

     if (value !== undefined) { 

      if (value === null) { 
       jQuery.removeAttr(elem, name); 
       return undefined; 

      } else if (hooks && "set" in hooks && notxml && (ret = hooks.set(elem, value, name)) !== undefined) { 
       return ret; 

      } else { 
       elem.setAttribute(name, "" + value); 
       return value; 
      } 

     } else if (hooks && "get" in hooks && notxml && (ret = hooks.get(elem, name)) !== null) { 
      return ret; 

     } else { 

      ret = elem.getAttribute(name); 

      // Non-existent attributes return null, we normalize to undefined 
      return ret === null ? 
       undefined : 
       ret; 
     } 
    }, 
+0

但你假设attr存在。 – Hick 2013-04-22 01:50:16

+0

@Hick它只是作为一个JavaScript对象处理。如果href不存在,则会添加href属性。这是你的问题吗?而且对于href属性,即使你没有在html标签中提及它,对象也会始终具有href属性。你可以自己检查一下,如果我错了,请纠正我的错误... – PSL 2013-04-22 01:53:51

+0

感谢您的帮助。我会看看。 – Hick 2013-04-22 02:03:35