javascript-如何确定一个html构造已发生作为当前选定的构造之前的兄弟的次数

javascript-如何确定一个html构造已发生作为当前选定的构造之前的兄弟的次数

问题描述:

我已经使用Javascript获得了当前在网页中选择的内容。javascript-如何确定一个html构造已发生作为当前选定的构造之前的兄弟的次数

为网页例样本HTML是below--

<div id="divText">Text 1 
     <div id="divText1_1">Text 1_1</div> 
     <div id="divText1_2">Text 1_2</div> 
    </div> 

现在,用户已经选择了文中给出“文字1_2” - 从上面的HTML,我们可以看到,这是第二次DIV在名为“divText”的div内 - 我如何使用Js代码获取这些信息?我想要的信息 - “divText1_2”是其父HTML元素中的第二个div。 (我想知道在“divText1_2”之前发生的div的数量 - 当用户选择“divText1_2”内的文本时)...

如果您想要的信息只是该div中的文本,那么尝试:

$(document).ready(function() { 

    alert($("#divText1_2").text()); 
}); 
+0

请参考我的意见,以shreedhar的答案...谢谢。 .. – Arvind 2012-07-28 20:07:49

如果你不知道的DIV ID,当用户从浏览器的一些文字,那么在哪里使用jQuery如发现html元素,:

dom = $('*:contains("Text 1_2")'); 

创建DOM数组如:

dom_array = [] 
for(var j=0; j<dom.length; j++){ 
    dom_array[j] = dom[j]; 
} 

现在在数组中的最后一个元素将包含所选文本的确切html元素。(假定选定的文本将仅出现一次)

selected_id = dom_array[dom_array.length-1].id // 

var a = document.getElementById("divText"); 
    var arr = []; 
    var div = document.getElementById("selected_id"); 
    for(var i=0; i<a.length; i++){ 
     arr[i] = a[i]; 
    } 
    console.log(arr.indexOf(div)); 
+0

我不会事先知道div的id--用户将在网页中选择一些文本 - 如果这是在一个div内(例如),那么我想知道在这个div之前有多少div ,作为选定的div的兄弟姐妹... – Arvind 2012-07-28 20:07:03

+0

他会选择HTML标记或浏览器上的文字? – Shreedhar 2012-07-28 20:09:18

+0

用户将在浏览器中选择文本... – Arvind 2012-07-28 20:14:01