感谢各位成员的帮助,我的代码运作良好。现在我有最后一步/请求。我有以下代码,有些人可能在最后一小时之前看到过:
<script type="text/javascript">
$(document).ready(function () {
$("[id^=topic]").change(function () {
var a = 'pk' + $(this).attr('id').replace('topic', '');
var b = $(a).val()
alert(b);
});
});
</script>
然后是:
<td id='pk_1'>Cat</td>
<td id='pk_2'>Dog</td>
此代码选择pk_1,pk_2等,并放入名为“a”的变量中。我想要的是不要获得元素pk_1的值。我尝试了一些不同的方法来获得这个并投入“b”。例如,我添加了“#”。没有工作。有时警报框会在某些时候显示“未定义”一词。有人有什么建议吗?
谢谢大家
答案 0 :(得分:1)
使用.html()
代替.val()
:
...
var a = '#pk' + $(this).attr('id').replace('topic', '');
var b = $(a).html();
alert(b);
答案 1 :(得分:1)
一些事情
$(document).ready(function () {
$("[id^=topic]").change(function () {
var a = '#pk_' + $(this).attr('id').replace('topic', ''); //add # and _
var b = $(a).html(); //use .html and not .val
alert(b);
});
})
这应该适合你。
答案 2 :(得分:0)
由于它是一个id,因此选择器应以#
开头。将其添加到选择器。此外,td
元素没有value
,只有input
个元素。您可能想要内部text
(或者,也许是html
)。如果这不起作用,那么检查id是否符合预期。
<script type="text/javascript">
$(document).ready(function () {
$("[id^=topic]").change(function () {
var a = '#pk' + $(this).attr('id').replace('topic', '');
var b = $(a).text()
alert(a + ' has value ' + b);
});
});
</script>
答案 3 :(得分:0)
基于一个非常具体的ID,比如id ='topic_1'恰好对应于id ='pk_1',我会说你应该跳过整个替换/操作id标签来找到另一个。
而是使用元数据插件。
<input type=text id="topic1" class="topic {pk:#pk_1}"/>
<input type=text id="topic2" class="topic {pk:#pk_2}"/>
在剧本中:
$(document).ready(function () {
$(".topic").change(function () {
alert($($(this).metadata().pk).html());
}
}
元数据可以在这里下载: