2012-12-10 39 views
2

是否有JQuery的办法由用户输入的句子中选择一个特定的单词,他可以能够添加一个链接到什么都他wants.Note字:句子没有硬编码,我们不知道用户将输入哪个句子。根据句子,我们必须创建一个链接到选定的单词。一个单词添加链接在一个句子

+0

信息太少。也有可能是纯JS是所有你需要(拆分为例) – mplungjan

+0

我想你可以[使用JavaScript和jQuery来获取用户选定的文本,然后做一些(有用?)和它(HTTP://标志。 koli.ch/2009/09/use-javascript-and-jquery-to-get-user-selected-text.html) – chridam

回答

0
Try the below 

<input type="text" id="enter"/> 
    <div id="content" ></div> 



$("#enter").bind("keyup",function(){ 

$("#content").html($("#enter").val().replace("Jquery","<a href='' >Jquery</a>")); 
}); 

输入Jquery并检查它。

http://jsfiddle.net/aDRB6/11/

感谢

+0

感谢@Sridhar纳拉辛汉,在这里,我不想在文本框中输入的所有数据,我想选择一个特定的单词并添加一个链接到该单词。 – user1891145

1

Use JavaScript and jQuery to Get User Selected Text, and then Do Something (Useful?) With Itwrapping text using jQuery及以下斯里达尔纳拉辛汉的回答的一部分整合资源,你能想出如下(未经测试):

HTML:

<input type="text" id="enter"/> 
<div id="content" ></div> 
<div id="link" ></div> 

的Javascript

$("#enter").bind("keyup", function() { 
    $("#content").html($("#enter").val()); 
}); 

$.expr[":"].containsNoCase = function(el, i, m) { 
    var search = m[3]; 
    if (!search) return false; 
    // we'll use text to find what we want... 
    return eval("/" + search + "/ig").test($(el).text()); 
}; 


if (!window.Kolich) { 
    Kolich = {}; 
} 

Kolich.Selector = {}; 
Kolich.Selector.getSelected = function() { 
    var t = ''; 
    if (window.getSelection) { 
     t = window.getSelection(); 
    } else if (document.getSelection) { 
     t = document.getSelection(); 
    } else if (document.selection) { 
     t = document.selection.createRange().text; 
    } 
    return t; 
} 

$.expr[":"].containsNoCase = function(el, i, m) { 
    var search = m[3]; 
    if (!search) return false; 
    // we'll use text to find what we want... 
    return eval("/" + search + "/ig").test($(el).text()); 
}; 


Kolich.Selector.mouseup = function() { 
    var st = Kolich.Selector.getSelected(); 
    if (st != '') { 
     // alert("You selected:\n" + st); 
     // wrap selecetd word in a link 
     $("#content:containsNoCase('" + st + "')").each(function() { 
      var textwithLink = '<a href="javascript:alert(\'link-to-selected-text.htm\')">' + st + '</a>'; 

      $("#link").html(textwithLink); 

     }); 
    } 
} 

$(document).ready(function() { 
    $(document).bind("mouseup", Kolich.Selector.mouseup); 
}); 

WORKING DEMO

+0

我已经包含一个工作演示链接到jsfiddle http://jsfiddle.net/3CFsd/我记得我没有完全测试这个代码,但这只是一般的直觉,可以impoved但是。 – chridam

+0

谢谢,我不想选择整个语句,我想将链接添加到使用任何外部按钮 – user1891145

+0

从演示一个特定的词,它不是选择整个输入只是所选文本'st'。代码将链接添加到选定的选定文本,我想你可以通过按钮单击事件来处理。 – chridam

0

尝试。

 Your HTML Structure. 
    <input type="text" id="enter"/> 
    <input type="text" id="link"/> 
    <button type="button" onclick="doAction()">Make Link</button> 
    <div id="content" >Mrinmoy Ghoshal</div> 

这里是你的函数

 function doAction(){ 

     var enterv=document.getElementById('enter').value; 
     var linkv=document.getElementById('link').value; 
     var str=document.getElementById('content').innerHTML; 

     var strnew=str.replace(enterv,'<a href="'+linkv+'">'+enterv+'</a>'); 
     document.getElementById('content').innerHTML=strnew; 
     alert(strnew); 
     } 

Working Demo

+0

你能不能请发送上面的提琴手 – user1891145

+0

等一下,我给你链接 –

+0

[Working Demo](http://jsfiddle.net/85tAq/2/) –

相关问题