JavaScript中存在一个问题,因为传递的参数是值(AWB的ID),但它没有在点击时显示所需的 div ,但它的行为类似于字符串值
View.cshtml
@foreach (var item in Model)
{
<tr>
<td>@item.AWBNO
</td>
<td>@item.AIRLINENAME
</td>
<td>@item.CARGODATE
</td>
@foreach (var itema in entity)
{
if (itema.AWBNo == @item.AWBNO)
{
Filled = true;
DCNo = itema.DCNumber;
break;
}
else
{
Filled = false;
}
}
<td>
@if (!Filled)
{
@Html.ActionLink(" ", "AddOn", "Section82", new { instanceId = item.AWBId }, new { @class = "AddOn" })
}
@if (Filled)
{
<div id = @item.AWBId style="display: none;" >
MyTextOnClick</div>
<button onclick = "Show(value)" value = @item.AWBId>
ClickMe</button>
}
</td>
</tr>
}
JS:
<script type = "text/javascript">
function Show(value)
{
alert(value);
$("#value").show(); // here is the major problem it's not getting id although in alert it showing the right id.
}
</script>
主要的问题是它没有得到div的id显示虽然在警告它显示正确的AWBId请帮助。
答案 0 :(得分:3)
您需要在使用它时将值连接到#
。
function Show(value)
{
alert(value);
$("#"+value).show();
}
编辑:为评论添加代码
HTML:
<button class="some-class-name" value = @item.AWBId>
ClickMe
</button>
JQuery的:
$('.some-class-name').on('click', function(){
var id = $(this).attr('value');
$("#"+id).show();
});
由于您使用的是JQuery,因此您可以执行与编辑类似的操作。
答案 1 :(得分:1)
您需要将value
替换为字符串:
function Show(value)
{
alert(value);
$("#" + value).show();
// ^^^^^^^^ The + appends the value of `value` to the string
}
例如,如果value
包含“foo”,您最终会得到"#foo"
,它会查找包含id
"foo"
的元素。
请务必遵循元素的CSS rules for the id
values,因为这是一个CSS选择器。 (虽然如果它认为可以,jQuery将使用document.getElementById
,这意味着它有时允许一些无效的CSS id
选择器,例如querySelector
或样式表不会。)