获取<li>文字内容

时间:2016-02-07 12:30:51

标签: javascript

我将控件(输入和选择)嵌套到<li>

<li>type<select><option>type1</option><option>type2</option></select></li>

当控件被更改时,我需要读取属性名称<li>文本内容,但在上面的情况下(使用select)li.textContent检索以下字符串:

  

typetype1type2

我尽量避免li.innerHTML(使用select检索整个内容),但获取<li>文本内容的最佳方式是什么?

2 个答案:

答案 0 :(得分:1)

在您的示例中,属性名称<select>元素之前的文本吗?

如果是这样,属性名称textContent元素的第一个childNode的{​​{1}}。

  

N.B。就是这么明确 - 您的li两个 <li>

     
      
  • childNodes的第一个childNodeli
  •   
  • textNode的第二个childNodeli
  •   

<select>会抓住第一个li.childNodes[0]

示例:

childNode
var li = document.getElementsByTagName('li')[0];
var p = document.getElementsByTagName('p')[0];

var propertyName = li.childNodes[0].textContent;

p.innerHTML = 'The label of &lt;li&gt; is... ' + propertyName;

答案 1 :(得分:1)

如果您可以处理ID和名称属性,那么最好不要获取标签或文本内容。通过这种方式,您可以随意使用任何文本标签

  <li>type label here<select id="type"><option>type1</option><option>type2</option></select></li>

JS(jquery)

  $(select).change(function(){
       alert ($(this).attr("id"));
  });