0

可能重复:
如何使用 jQuery 选择文本节点?

我正在尝试移动文本节点中与选中复选框相邻的复选框中的数据。我正在使用 jquery。下面列出了我尝试过的方法以及我收到的结果。

<input class="item" type="checkbox" /> Category 1
<input class="item" type="checkbox" /> Category 2


<script>
  $('.item').click(function(){
      if($(this).attr('checked'))
      {
         $('#list').append("<span>" + $(this).next() + "<span><br/>")
         //$(this).next() just writes "[object Object]"
         //$(this).next().text() doesn't write anything
         //Also tried $(this).nextSibling.nodeValue but throws "Cannot access property of undefined"
      }
      else
      {
          //This is remove the item from the list on uncheck 
      }
  });
</script>
4

1 回答 1

0

考虑改为使用此标记

<input class="item" type="checkbox" id="cat_one" name="cat_one" /> <label for="cat_one">Category 1</label>
<input class="item" type="checkbox" id="cat_two" name="cat_two"/> <label for="cat_two">Category 2</label>

或这个:

<label for="cat_one"><input class="item" type="checkbox" id="cat_one" name="cat_one" /> Category 1</label>
<label for="cat_two"><input class="item" type="checkbox" id="cat_two" name="cat_two"/> Category 2</label>

因此,您用一块石头杀死了两只鸟:a)您的标记在语义上要好得多,b)您可以通过该方法访问label元素内容。.text()

第一个变种可以在这里看到:http: //jsfiddle.net/skip405/DjWcg/

于 2012-04-22T18:53:30.393 回答