通配符/动态div id没有获得$(this)的值

时间:2017-03-25 04:08:25

标签: javascript jquery html

所以我在这里有一个非常基本的需求,我无法弄清楚它为什么不起作用。

出于测试目的,我有100个div,其中包含d_fav100,d_fav101等ID ...

它看起来像是一堆这些

<div id='d_fav100'>This is DIV 100</div>
.
.
.

我的jquery赶上抓住div看起来像这样......

   $("[id^='d_fav']").click( function() {
      var fav = $(this).val();
      alert(fav);
   });

但是,我无法获得分配给变量fav的div中的值。警报始终为空白。

我错过了什么?

感谢您的期待!

JT

3 个答案:

答案 0 :(得分:1)

对于div,您应该使用.text()方法:

Codepen

$("[id^='d_fav']").click( function() {
   var fav = $(this).text();
   alert(fav);
});

.val()将获得输入/ textareas的值。

Jquery的text()

答案 1 :(得分:0)

您似乎需要委派该活动。此外,div没有任何value属性。如果要获取文本,请使用jquery text方法

$('body').on('click' ,"div[id^='d_fav']",function(e){
 console.log($(this).text().trim())
})

DEMO

答案 2 :(得分:0)

如果我理解正确 - 你不想要div的实际文本,而是div的值(数字) - 即:100部分 - 在div的id中是相同的。

使用一个类并从click事件中获取div的id - 使用substr(5)删除d_fav部分 - 其余部分是你所追求的数字。

如果它是您正在使用的文本 - 那么您可以使用相同的代码,但使用已描述的.text()方法。

&#13;
&#13;
$(".d_fav").click( function() {
      var fav = $(this).attr('id').substr(5);
      alert(fav);
   });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="d_fav" id='d_fav100'>This is DIV 100</div>
<div class="d_fav" id='d_fav101'>This is DIV 101</div>
<div class="d_fav" id='d_fav102'>This is DIV 102</div>
&#13;
&#13;
&#13;