如何访问HTML元素的ID

时间:2011-07-08 12:15:35

标签: jquery

如何从“id”而不是“value”中获取值并在页面上显示?现在我有Holzart:3,我希望Holzart:Lärche

我有这个功能:

$(document).ready(function() {
  $("input[name='holzart']").click(function() {        
    PobierzWartosc2();
  });
});

function PobierzWartosc2() {
  $('#aus2').html('');
  $("input[name='holzart']").each(function() {
  if (this.checked == true) {
    $('#aus2').append('Holzart:'+ $(this).val()) }
  });
}

和这个HTML:

<tr><td><label>
<input type="radio" name="holzart" value="3" id="Lärche" >Lärche</label></td></tr>

6 个答案:

答案 0 :(得分:3)

只需使用this.id代替$(this).val()

但是,ID是存储数据的最差属性之一,除非它是对象的实际ID。您可以考虑添加data-something="whatever",然后使用$(this).data('something')

访问它

答案 1 :(得分:0)

所以改变你的代码。你附加了价值,而不是ID。

$('#aus2').append('Holzart:'+ $(this).val()) }
    });

应该是

$('#aus2').append('Holzart:'+ $(this).attr('id')) }
    });

修改
正如其他人推荐的那样,最好使用this.id而不是$(this).attr('id')。

答案 2 :(得分:0)

$('#aus2').append('Holzart:'+ $(this).attr('id'))

答案 3 :(得分:0)

而不是$(this).val()您需要使用$(this).attr("id")

答案 4 :(得分:0)

使用this.id$(this).attr('id')。不同之处在于,this是一个JavaScript对象,引用了单击的单选按钮,但$(this)是一个jQuery对象,包装JavaScript对象以提供更多功能。

答案 5 :(得分:0)

以下是代码的改进版本,带注释

// $(document).ready() is superfluous, use $()
$(function() {
  $("input[name='holzart']").click(function() {
    // call the function in the correct context to retain the meaning of "this"
    PobierzWartosc2.call(this);
  });
});

function PobierzWartosc2() {
  // just overwrite the current content instead of calling .html('') first
  $('#aus2').text( this.checked ? this.id : '' );
}
基本上,你想要:

$(function() {
  $(":radio[name='holzart']").click(function() {
    $('#aus2').text( this.checked ? this.id : '' );
  });
});

除此之外,我同意ThiefMaster id是存储任何类型数据的可怕地方。

使用HTML5 data-*属性或存储其他数据 - 例如隐藏<span>(如果您的网页不是HTML5)。在您的情况下,您甚至只需使用关联的<label>

的文本即可
$(function() {
  $(":radio[name='holzart']").click(function() {
    var $label = $("label[for='" + this.id + "']");
    $('#aus2').text( this.checked ? $label.text() : '' );
  });
});