Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jQuery在文本框中获取单击的单词索引_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如何使用jQuery在文本框中获取单击的单词索引

Javascript 如何使用jQuery在文本框中获取单击的单词索引,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我想从文本框中获取单词“Amit”的索引为3,不包括鼠标点击事件中的任何空格/标点符号。如代码段中所述 目前,我正在使用以下命令获取单击单词的字符位置,但我想要的是使用jQuery中的.on函数获取单词位置 $("#idTable1 > tbody > tr").on('click', function (e) { var start = document.getElementById("inputTxt").selectionStart; var end = document.g

我想从文本框中获取单词“Amit”的索引为3,不包括鼠标点击事件中的任何空格/标点符号。如代码段中所述

目前,我正在使用以下命令获取单击单词的字符位置,但我想要的是使用jQuery中的.on函数获取单词位置

$("#idTable1 > tbody > tr").on('click', function (e) 
{
var start = document.getElementById("inputTxt").selectionStart;
var end = document.getElementById("inputTxt").selectionEnd;
编辑:如果所选单词在句子中重复出现,则该单词应为 所选单词的索引,而不是第一次/剩余出现的单词 我的名字叫阿米特。阿米特今年22岁。 因此,如果我在Amit 22岁时选择“Amit”,它应该给我鼠标点击的适当索引,即索引->5

所以,如果我从这个句子中选择任何一个单词,它应该给我一个合适的单词索引


任何指针都有助于解决此问题。

您可以使用以下代码段

var text = document.getElementById("inputTxt").value;
console.log(text.split(" ").indexOf("Amit"));
//--------->split the text and find the index
示例:

$(文档).ready(函数(){
$(“#idTable1>tbody>tr”)。在('click',函数(e){
var text=document.getElementById(“inputxt”).value;
console.log(text.split(“”.indexOf(“Amit”));
});
});

点击这里

更新:试试这个

$(函数(){
$(文档).on('click','#idTable1>tbody>tr',函数(e){
var ret=getSelectedWordIndex($(“#输入文本”).val(),window.getSelection().toString(),$(“#输入文本”)[0]。selectionStart,$(“#输入文本”)[0]。selectionEnd);
控制台日志(ret);
});
函数getSelectedWordIndex(全文、selectedText、开始、结束){
var sp=fullText.split(“”),
指针=0,
结果=假;
$。每个(sp,功能(i,e){
如果(!结果){
如果(e==selectedText){
如果(指针==开始){
结果=sp.indexOf(selectedText,i);
返回false;
}
}
指针=指针+e.长度+1;
}
});
返回结果;
}
})
点击我
abc def abc def abc def abc def abc def abc def abc def abc def

谢谢,这并不是我想要的,我想在鼠标点击时获得所选单词的索引。您正在.IndexOf()方法中硬编码“Amit”。请更新您的answer@amitgupta我已经更新了鼠标选择词的答案。感谢您的写作。但是,如果字符串中有重复的词,这将不起作用。就像字符串“amit,我的名字是amit”,如果我选择索引4位置的amit,它将返回我索引为0。请更新此项。谢谢。这对我很有帮助。如果这真的对你有帮助,你可以通过检查答案附近的勾号图标将其标记为答案。谢谢你的写作。但如果字符串中有重复的单词,这将不起作用。如字符串“amit,我的名字是amit”,如果我选择索引4位置的amit,它将返回索引为0。但我希望索引为4。请更新此内容。您在问题中没有这样说。谁知道得不确切,但有了一个想法。在这种情况下,有时当响应包含空格时,我也会将其视为false。它不应该返回空格。此外,当字符串包含分隔符或点时,它也没有正确返回索引。omg,1。我们解决了您的第一个问题,但您希望允许重复。2.我们解决了重复的情况,但现在你要的是句子而不是单个单词。我认为下次你应该完整地解释你的问题,这样这些人就不会做同样的工作两次甚至更多。无论如何,得到句子或黑客点仍然是可能的,只是改进我的代码或约翰R代码。祝你好运
var text = document.getElementById("inputTxt").value;
console.log(text.split(" ").indexOf("Amit"));
//--------->split the text and find the index