2012-12-10 77 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/) –

相關問題