jquery基于变量从dom中删除

时间:2010-09-24 17:45:45

标签: jquery dom

有一个脚本可以从选择字段添加/删除选项 - 我要删除的选项的“值”应该等于所点击链接的“类”。我已经尝试了这个脚本的几个不同版本,我不能为我的生活弄清楚如何正确地将变量delText放入函数中以删除它。帮帮忙!

   $('a.del').click(function() {
      var delText = $(this).attr('class');
      window.parent.$("select[name='<?php echo $f; ?>']").remove($("<option></option>").text(delText));
   });

3 个答案:

答案 0 :(得分:3)

如果元素的value等于链接的class,请执行以下操作:

$('a.del').click(function() {
  var delText = $(this).attr('class');
  $('option[value=' + delText + ']').remove();
});

我不确定这实际上是否与你想要做的事情相符? <?php ?>位似乎非常不合适,我也不确定window.parent位。

答案 1 :(得分:0)

尝试类似:

$("select[name='<?php echo $f; ?>'] > option[value=" + delText + "]").detach();

选择并分离具有指定值的选项,该值是指定select元素的子(“&gt;”选择器)。

答案 2 :(得分:0)

通过.del选择链接意味着您无法使用他们的课程来 识别他们相关的<option/>。也许您可以使用rel代替(对于任何一个值)。

$('a[rel=del]').click(function (event) {
    event.preventDefault();
    $('select[name=<?php echo $f; ?>] option')
        .remove('[value=' + $(this).attr('class') + ']');
});

工作示例:http://jsfiddle.net/prH9M/

如果您将字符串传递给remove,它会过滤当前集(而不是其子集)。您也可以选择(通过find)选项,然后只需拨打remove,无需过滤

$('select[name=<?php echo $f; ?>]')
    .find('option[value=' + $(this).attr('class') + ']')
    .remove();